Spring Boot非常简单容易上手,它隐藏了很多内容而不需要你去关心。但对于一个好的开发人员也许希望知道Spring Boot自动配置背后到底发生了什么?
Spring Boot并不属于一种新的技术,只不过Spring Boot的启动器帮我们配置了若干个被Spring管理的bean,当我们的项目依赖这些jar并启动Spring应用时,Spring的Container容器已经把jar包下的对象加以创建及管理了。
简而言之,Spring Boot自动配置代表了一种基于类路径上存在的依赖关系自动配置Spring应用程序的方法。还可以通过定义消除自动配置类中包含的某些bean。这些可以使开发更快更容易。
springboot auto configuration的本质就是自动配置spring的各种bean。然后使应用可以通过@Autowired等注入方式来直接使用bean。比如自动配置redisTemplate,jdbcTemplate等bean。
1. 通过启动类创建Spring Boot应用
创建Spring Boot应用非常简单,只要创本文来源gaodai#ma#com搞*!代#%^码网%建一个包含main的启动类即可。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; @SpringBootApplication public class App { public static void main(String[] args) { ApplicationContext ctx = SpringApplication.run(App.class, args); } }
上面这个类被称为Spring Boot应用的启动类,它通过一个java的main()方法来引导和启动一个Spring应用。它通常包含了以下内容:
- 创建一个Spring ApplicationContext实例。
- 接收命令行参数并将其转为Spring属性。
- 按照配置加载所有Spring Bean。可以根据项目需求进行其他操作。
2. @SpringBootApplication注解
这个注解其实是一个应用了3个注解的快捷方式。
2.1 @SpringBootConfiguration
@SpringBootConfiguration是在Spring Boot2中出现的一个新的注解。之前我们都是使用的 @Configuration注解,可以用 @Configuration来替换它,2个都是实现同样的功能。