springboot启动类注解

   话说上次面试遭遇非常之尴尬,洗刷耻辱就从springboot启动类注解开始吧。

   面试时还被问到一个问题,@RestController是不是springboot的注解?我只能说不知道。下来查了一下,@RestController不是springboot提供的,在springmvc4.0中就已经存在,主要为微服务提供返回格式,当时该类中的所有方法返回json格式数据,等价于@Controller+@ResponseBody。
   想想面试那哥们问我springboot的启动类注解是什么,想了半天,一点印象都没有了,明明10天前,还用springboot开发项目呢。现在必须牢牢记住@SpringBootApplication。@SpringBootApplication是一个混合注解,等同于@ComponentScan+@EnableAutoConfiguration+@SpringBootConfiguration。

@EnableAutoConfiguration    注解作用:自动配置,扫包范围默认在当前类中。

@EnableAutoConfiguration也是复合注解,借助@Import将所有符合配置条件的Bean加载到spring的ioc容器中,帮助spring应用将所有符合条件的@configuration配置都加载到当前的spring ioc。

@ComponentScan("com.springboot.controller")        注解作用:扫包范围(尽量不要用*,扩大扫描范围会降低性能)。主要作用是扫面当前包及其子包下,被@Component、 @Controller、 @Service、@Repository注解标记的类,并纳入ioc容器中进行管理。

@SpringBootConfiguration   继承自@Configuration,两者的功能一致标注当前类是配置类。相当于spring中的xml文件配置。

总体来说,@SpringBootApplication的作用就是生成ioc容器,一是将通过@Configuration定义的配置类注入ioc,二是将通过扫面生成的Bean注入ioc容器中。

springboot中的main()方法的作用:整个程序的启动入口(默认内置tomcat服务器,使用tomcat加载springmvc注解启动类),启动springboot项目

你可能感兴趣的:(spring)