文章目录
1. Spring Boot的优点
- 内嵌了tomcat服务器,能够快速启动,方便开发人员开发调试
- 采用自动配置的方式,相对于Spring和SpringMVC省去了大量配置的麻烦,且更加简洁,能够快速开发
- 能够监控整体的Spring Boot运行情况
- 与常用的开源框架很好地无配置集成,便于开发人员开发
- 与云计算天然集成
2. Spring Boot自动配置的原理
- SpringApplication对象在实例化时,首先加载META-INFO/spring.factories该文件
- 再加载该配置文件中的AutoConfiguration类,该类会初始化引入的Starter的配置和示例,但是引入需要通过条件注解,条件注解需要满足ClassPath目录下是否加载了引入的Starter的类
举例:
- 在Maven中引入了Spring-boot-starter-redis
- 通过应用类加载器将该Jar包加载到ClassPath下
- SpringApplication初始化时加载spring.factory文件
- 并根据该文件下配置的RedisAutoConfiguration去判断条件注解(@ConditionalOnClass({JedisConnection.class,RedisOperations.class,Jedis.class})),即ClassPath下是否存在JedisConnection.class,RedisOperations.class,Jedis.class这三个类,存在则可以根据其他具体的条件注解自动加入RedisProties和Redis使用的相关的Bean
3. 如何创建一个Spring Boot项目
- 在pom中定义父Pom为Spring-boot-starter-parent
- 在pom中加入web的starter
- 在pom中加入redis的starter
- 在pom中加入spring-boot-maven-plugin插件
- 在类上加@SpringBootApplicion注解和@ComponentScan(basePackages = {""})包扫描注解
- 编写main方法,调用SpringApplicion.run(加了注解的.class,args)方法
- 定义一个Controller
4. Spring Boot项目整合Mybatis
- 在pom中加入Mybatis的Starter的jar
- 通过@Configuration加入SqlSessionFactory
- 通过@Configuration加入Mapper包扫描的配置
- 设置事务需要导入jdbc的starter,然后在service中加入@Transcational注解
5. 发布到独立的Tomcat运行
- pom中的打包设成packing
- 将pom中引入的tomcat设成provided,从而在打包时会排除该jar
- 在SpringBoot的应用类继承SpringBootServletInitializer,并重写configure,然后通过builder.sources(应用.class)设置启动类
- 通过Maven打出war
- 将war部署到服务器中
6. 读取application.yml或者application.properties配置文件的方式
- 通过@Value注解
- 通过@ConfigurationProperties(prefix = “spring.redis”)在类上加入该注解获取