一. SpringBoot介绍
Spring Boot是由Pivotal 团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注Spring应用的开发,而无需过多关注XML的配置。
Spring Boot使用"习惯优于配置"的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。
1. SpringBoot解决的SSM问题
- 在项目初始化时,需要编写/copy大量的初始化模板配置,才能继续后续的研发.
- 后期SSM项目的xml文件量非常的大,维护也是需要成本.
- 传统的SSM项目,导入大量的插件.
- SSM项目部署很麻烦.
2. SpringBoot的好处.
- SpringBoot不需要模板的话的配置.
- SpringBoot不推荐编写xml文件,推荐将配置信息全部编写在.java文件.SpringBoot已经完成了大量的配置,只需要在.java中编写一些自定义配置即可.
- SpringBoot不需要你导入大量的插件,只需要导入指定的依赖即可,自动帮引入需要的插件.
- SpringBoot默认即支持多环境配置.
二. SpringBoot的启动类.
启动类上的注解.
-
@SpringBootApplication注解是一个组合注解,包括
@SpringBootConfiguration -> 配置类.
@EnableAutoConfiguration -> 自动装配.
@ComponentScan -> 扫描注解. -
@SpringBootConfiguration
@SpringBootConfiguration注解本质就是一个@Configuration
@Configuration是用来编写配置类的注解.
比如xml <beans> <bean id="user" class="com.pojo.User" /> </beans>
@Configuration // <beans> public class TestConfig { @Bean public User user(){ return new User(); // 返回的User对象,就会被放到Spring容器中. } }
-
@EnableAutoConfiguration
开启自动装配的注解.
Spring工厂加载机制:
SpringFactoriesLoader获取META-INF/spring.factories中的全部Configuration类.
SpringFactoriesLoader会以for循环的方式,一个一个的装配Configuration类.自动装配的好处:
导入依赖一个之后,不需要自己编写大量的配置就可以直接使用.
自动装配的坏处:
导入指定的starter依赖之后,需要编写上他要求必须书写的配置信息.
如果不需要摸一个自动装配,可以在启动类中将其排除掉.
@SpringBootApplication(exclude = xxxx.class) -
@ComponentScan
扫描注解的.
<context:component-scan basePackage=“com.xxxx” />
启动类中的注解默认会扫描当前启动类所在包,及其子包中的全部spring注解.
如果将类写在了其他的包下,可以通过再启动类中单独添加 @ComponentScan去扫描指定的包.
三. SpringBoot的配置文件.
1. 配置文件的格式.
推荐采用yml文件的方式编写配置信息.
- 相比properties文件,yml更容易维护配置信息.自动帮分门别类.
- 相比properties文件,yml文件更轻量一些.
yml相对的缺点.
- yml文件时根据换行和缩进指定具体的编写信息的. (如果配置不规范,同事两行泪)
- yml文件在书写具体内容时,一定要在: 后添加一个空格后在编写
2. 多环境配置.
SpringBoot项目的命令启动方式
在当前项目的pom.xml 目录下 执行 mvn spring-boot:run
mvn spring-boot:run -> 添加参数
//比如多环境选择 需要设置多环境配置文件
mvn spring-boot:run -Dspring-boot.run.profiles=pro
将springboot项目打成jar包
mvn clean install -Dmaven.test.skip=true
使用 java -jar xxx.jar 执行这个可执行jar文件
java -jar xxx.jar -> 添加参数
//比如多环境选择
java -jar demo-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro
//比如修改端口号
java -jar demo-test-0.0.1-SNAPSHOT.jar --server.port=9999
SpringBoot的多环境配置文件方式分为两种:
1.要想使用多配置文件进行多环境管理首先要遵循springboot官方的命名规则
① application-{profile}.properties
② application-{profile}.yml
例如:
application-dev.yml 开发环境
application-test.yml 测试环境
application-pro.yml 生产环境
SpringBoot项目的命令启动方式
在当前项目的pom.xml 目录下 执行 mvn spring-boot:run
mvn spring-boot:run -> 添加参数
//比如多环境选择 需要设置多环境配置文件
mvn spring-boot:run -Dspring-boot.run.profiles=pro
将springboot项目打成jar包
mvn clean install -Dmaven.test.skip=true
使用 java -jar xxx.jar 执行这个可执行jar文件
java -jar xxx.jar -> 添加参数
//比如多环境选择
java -jar demo-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro
//比如修改端口号
java -jar demo-test-0.0.1-SNAPSHOT.jar --server.port=9999
2.创建一个配置文件通过三个连字号
spring:
profiles:
active: pro
---
spring:
profiles: dev
server:
port: 8888
---
spring:
profiles: pro
server:
port: 9999
3. 引入外部配置文件的信息.
-
传统的方式可以通过@Value(${key}) -> 获取外部.properties文件中的信息.
-
通过自定义一个POJO类,添加上相应的注解,从而获取外部.properties文件的信息.
@ConfigurationProperties(prefix = “统一前缀”)
@Component
保证属性名和自定义信息的后缀一致即可.
在需要使用的地方直接@Autowired/@Resource直接注入POJO类即可.
五. SpringBoot整合Mybatis
导入依赖.
MySQL驱动. -> mysql-connector-java
Druid连接池. -> druid-spring-boot-starter
Mybatis框架. -> mybatis-spring-boot-starter
编写配置文件.
mybatis:
# 3.1 扫描映射文件.放在resources下
mapper-locations: classpath:mapper/*.xml
configuration:
#3.2 配置驼峰映射.
map-underscore-to-camel-case: true
# 3.3 配置别名.
type-aliases-package: com.entity
在启动类中扫描接口所在位置.
@MapperScan(basePackage = “com.qf.mapper”)
测试.
-
直接在Mapper接口的位置右键 -> goto -> Test (idea会帮助咱们自动创建一个测试类,创建在test目录下的)
-
让测试类继承SpringBoot自带的测试类.项目名ApplicationTests.
@RunWith(SpringRunner.class)
@SpringBootTest
可以开始测试直接的对象.
Mybatis注解实现.
如果sql语句比较简单,不需要动态sql,可以采用注解的方式,注解方式更简单.
如果sql语句比较麻烦,不推荐使用注解,推荐使用xml文件的方式.
xml和注解可以同时使用.
在接口的抽象方法上添加注解实现.
@Select
@Update
@Insert
@Delete