约定优于配置
spring boot最为人津津乐道的是大量减轻了配置工作量,只要有一个被@SpringBootApplication注解的启动类就可以运行。之所以能大量减少用户的配置工作量,特别是减少了配置集成第三方组件的工作量,如mybatis,hibernate,redis。
- spring默认编写了很多配置类(被@Configuration注解的类),这些类位于autoconfig’s jar里面。
- 默认提供 application.properties/yml 文件
- 默认通过 spring.profiles.active 属性来决定运行环境时读取的配置文件
- EnableAutoConfiguration 默认对于依赖的 starter 进行自动
@SpringBootApplication
- @SpringBootConfiguration = @Configuration意味着它其实也是一个 IoC容器的配置类
- @EnableAutoConfigurationspringboot 应用把所有符合条件的@Configuration 配置都加载到当前 SpringBoot 创建并使用的 IoC 容器中。
- @ComponentScan默认会扫描当前 package 下的的所有加了@Component 、@Repository、@Service、@Controller的类到 IoC 容器中。
spi机制
SPI的全名为Service Pro