1.概述
SpringBoot不是对Spring的增强,而是提供了一种快速使用Spring的方式。
自动配置,传递依赖,辅助功能
SpringBoot在创建项目时,使用jar的打包方式。
2.自动搭建SpringBoot项目
3.起步依赖原理分析
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/>
</parent>
版本锁定,不会造成依赖冲突
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
依赖传递
小结
在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在 版本冲突等问题。
4.SpringBoot配置
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用 application.properties或者application.yml(application.yaml)进行配置。
⚫ SpringBoot提供了2种配置文件类型:properteis和yml/yaml
⚫ 默认配置文件名称:application
⚫ 在配置文件优先级,同一级目录下优先级为:properties > yml > yaml
5.读取配置内容
1)@Value
单个属性注解
2)Environment
注入对象get
@Autowired
private Environment env;
env.getProperty();
3)@ConfigurationProperties
对象和配置文件中属性的绑定,指定属性前缀
在类上注解加上@ConfigurationProperties(prefix="person")
4) profie
在application.yml配置文件中
#定义多个profiles文件
spring:
profiles: dev
#引用哪个文件生效
spring:
profiles:
active: dev
(1) profile配置方式
⚫ 多profile文件方式
⚫ yml多文档方式
(2) profile激活方式
⚫ 配置文件
⚫ 虚拟机参数
⚫ 命令行参数
6.配置加载顺顺序
这几个位置的配置文件没有重复的属性会互补生效
项目打包的时候只会将java和resource文件打进jar包里面
外部文件加载顺序
7.整合
SpringBoot整合Junit
注意测试服务类的包名路径和服务类相同的话上述SpringBootTest的classes可以不加
SpringBoot整合Redis
注意启动redis 默认端口6379
SpringBoot整合MyBatis
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--<scope>runtime</scope>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
import java.util.List;
@Mapper
@Repository
public interface UserMapper {
@Select("select * from t_user")
public List<User> findAll();
}
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootMybatisApplicationTests {
@Autowired
private UserMapper userMapper; //@Repository
@Test
public void testFindAll() {
List<User> list = userMapper.findAll();
System.out.println(list);
}
}