Spring Boot注意事项及项目结构
测试的包要放在测试的包子包里面
类的位置必须放在启动类所在包以及子包下
如何判断一个对象何时创建?方法:1:日志;2:断点(如何看断点:打开断点视图从下往上看)
可以在配置文件中配置日志:
配置mybatis中的sql日志的输出:(com.cy为我们写的项目的根包)
logging.level.com.cy=debug
Spring Boot核心特性
spring boot相当于一个脚手架构建于spring框架基础之上
起步依赖(Starter Dependency)-项目创建时底层帮你关联依赖。
自动配置(Auto Configuration)。
健康检查(Actator)-监控。
**Spring Boot官方网址
SpringBoot 项目在启动时,首先基于启动入口类上的注解描述,进行自动配置并扫描指定包以及子包中的类进行加载,然后检测类上是否有Spring框架中指定的注解描述(例如@Component,@Controller,@Service等)。假如有,则将类交给Spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创建Bean的实例,假如此Bean指定了生命周期方法,还会调用生命周期方法。当实例创建以后,Spring框架还会基于类的作用域描述,将实例存储到不同作用域的容器中。以实现Bean对象的科学应用
Spring Boot中的注解
1.@SpringBootApplication注解:被此注解描述的类是启动类,是springboot项目启动运行的入口**
2.@Component注解:是Spring中用于描述Bean类的一个注解。用于告诉Spring这个类的实例由Spring创建,当此对象由 Spring创建和管理时,默认会将对象存储到池(Bean池)中**
3.@SpringBootTest 注解:标识这个类是测试类,此测试类交给spring管理**
@Resource先找名字再找类型和@Autowired差不多
4.@Autowired注解:告诉spring框架要为此属性注入一个值,要指向的对象**
注入规则:@Autowired注解描述属性时系统底层会基于属性类型从spring容器查找对象,
假如有多个类型满足注入要求,则还会基于属性名进行查找,检测哪个bean名字与属性名相同,
假如有相同的则直接取相同进行注入,没有则抛出异常
5.@Lazy注解用于描述类,其目的是告诉spring框架此类支持延迟加载,通常会配合单例作用域使用。**
如果在Lazy后面写false表示不延迟加载实时加载,如果里面写的true表示延迟加载默认value属性值为true如@Lazy(true)
6.@Scope 是Spring中用于定义Bean对象作用域的一个注解,其常用的值有
singleton(整个内存有一份Bean实例,此实例何时创建与类的延迟加载特性配置有关,此实例创建以后,生命周期会由 spring框架管理),prototype(每次获取都会创建新实例,此实例会在需要时创建与lazy特性无关,这个实例创建以后,不会交给spring管理,spring可以对其初始化,但不负责销毁。)等。**
7.@PostConstruct 注解用于描述bean对象生命周期方法中的初始化方法,此方法会在对象的构造方法之后执行(是对象创建以后的初始化)。
8.@PreDestroy 注解用于描述Bean对象生命周期方法中的销毁方法,此方法会在对象销毁之前执行(当作用域为prototype时,此方法不会执行)**
MyBatis中的注解
1.@Mapper是由MyBatis框架中定义的一个描述数据层接口的的注解(所有的注解只起到一个描述性的作用),用于告诉Spring框架此接口的实现由mybatis创建,并将其实现类对象存储到spring容器
数据初始化
1.第一步:登录mysql
mysql –uroot –proot**
2.第二步:设置客户端控制台编码(MySql客户端)方式
set names utf8;**
3.第三步:执行goods.sql文件
source d:/goods.sql**
Spring Boot整合连接池
创建maven项目时如果出现报错的情况项目上出现红叉叉选择工程右键选择maven,Update Project选择Force…** Update…强制更新
1.先创建一个spring boot工程,如果网络不好也可以创建一个maven工程或者从网上创建**
2.在创建的过程中选择依赖 JDBC API,也可以不选择然后手动添加依赖,如下:
2.1:mysql数据库驱动依赖**
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
2.2:spring对象jdbc支持(此时会默认帮我们下载HiKariCP连接池)**
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
3.配置连接池
打开application.properties配置文件,添加如下内容:
spring.datasource.url=jdbc:mysql:///dbgoods?serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
Spring Boot整合MyBatis框架
1.步骤
1.1.添加mybatis启动依赖,可以参考mybatis官网:mybatis.org/spring,找到springboot菜单选项.基于菜单项找到MyBatis启动依赖。在添加依赖时一定要指定其版本,如下所示:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>
然后在yml文件中
server:
port: 8090
servlet:
context-path: /
spring:
datasource:
#driver-class-name: com.mysql.jdbc.Driver 驱动注释,采用默认的方式
url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
#Mybatis整合
mybatis:
#定义别名包
type-aliases-package: com.jt.pojo
#添加xml文件的依赖
mapper-locations: classpath:/mybatis/mappers/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
第二种方式就是右键pom.xml文件选择Spring点击Edit Starters