在Spring Boot入口类中,调用SpringApplication.run()方法后,应用将通过以下四个步骤进行启动。
1. 加载配置文件
Spring Boot支持两种配置文件,即.propertie
和.yml
,此类文件对当前工程的各种配置信息进行了管理,Spring Boot会在启动时首先将其加载进来。
(.properties
是Spring Boot的默认配置文件格式,但其相对来说不容易被维护,所以更多的时候会选用更为清晰的.yml
文件)
2. 自动装配
在Spring Boot中存在很多的启动器----starter
,每一种启动器都可以为工程提供相应的支持。如:
- spring-boot-starterstarter-web 提供web支持
- spring-boot-starter-data-jpa 提供JPA支持,并集成Hibernate
- spring-boot-starter-logging 提供logback日志的支持
- spring-boot-starter-test 提供JUnit单元测试框架支持
在POM文件中配置了相应的starter
,Spring Boot会对所有的starter
进行自动装配,使得工程具备各种由其提供支持的功能。
3. 加载组件
在工程中,存在大量的自定义类和业务处理类,这些类都需要交给Spring来托管,在默认的情况下,Spring Boot会处理以下五个注解的类,分别为:
@Controller
对应MVC模式中的控制器类@Repository
对应DAO类,用于数据处理@Service
对应业务逻辑类@Component
对应不容易区分的类@Entity
对应实体类,任何Hibernate映射对象都要有这个注释
Spring Boot会将带有以上注解的类进行统一的加载。
4. 应用初始化
当所有的装配、组件加载完成后,应用程序会进行初始化,如:启动Tomcat,初始化日志组件,初始化数据源,初始化各种连接池等。
当初始化部分完成以后,应用就成功启动了。