一、作用概述
@SpringBootApplication 是Sprnig Boot项目的核心注解,目的是开启自动配置;
@SpringBootApplication是一个组合注解,等同于同时使用@Configuration,@EnableAutoConfiguration和@ComponentScan及其默认属性。
二、组成内容
@ComponentScan
这个注解是指定springboot去扫描哪个包中的类的。因为我们在控制器和业务类上面都会添加spring的注解,@Controller,@Service这些注解都是需要被springboot扫描到的,否则,这些类就不会被spring管理起来。那么@ComponentScan就是去扫描这些注解的。@ComponentScan只会去扫描当前包以及子包中的所有的注解。所以我们在写入口类的时候一般都放在baizhi包里面。
如果我们不把入口类放在baizhi包中的话,我们需要在注解里面添加参数指定要扫描哪个包。
@SpringBootApplication(scanBasePackages = "com.baizhi.controller")
@EnableAutoConfiguration
这个注解跟springboot的start机制有关系。springboot能够减少配置文件,都是依赖了这个注解。这个注解可以自动去找底层jar包中的配置文件。
@SpringBootConfiguration
这个注解是基于@Configuration进行的封装。表示当前的入口类是一个配置类,可以进行@Bean注解的配置
@Bean//让spring管理起来userServiceImpl对象
//<bean id="us" class="com.baizhi.service.UserServiceImpl"/>
public UserServiceImpl getUs(){
return new UserServiceImpl();
}