SpringApplicaiton引导类的注解

来源:3-5 配置 Spring Boot Bean 源码部分

weixin_慕婉清1539122

2020-11-19

在2-9章节中,老师把ConditionalOnSystemProperty以及Bean注解加到helloWord上,但在引导类ConditionalOnSystemPropertyBootstrp上并没有加任何注解。在这种情况下SpringApplicaiton可以正常运行。为甚么在这节课里引导类上面一定要加上@Component或者其派生注解呢

写回答

1回答

杨勤_cd

2020-11-29

@ConditionalOnSystemProperty引导类不需要注解,是因为设置了.web(WebApplicationType.NONE),这种模式不需要web相关的bean被装配;

后面的需要@SpringBootApplication,是因为都是以servlet启动,需要自动装配web相关bean,这些bean存在于相关jar包的META-INF/xxx.factories,所以实际上只需要开启@EnableAutoConfiguration注解。而@SpringBootApplication是“继承”自@EnableAutoConfiguration注解的。


如果设置启动模式为WebApplicationType.NONE也是不需要在引导类加注解的。

如果设置启动模式为WebApplicationType.SERVLET需要开启EnableAutoConfiguration

--------------------------------

以上纯个人理解,仅供参考。

0
0

Spring Boot2.0深度实践 核心原理拆解+源码分析

系统化剖析Spring Boot 2.0,掌握技术原理,学习源码阅读技巧

2904 学习 · 213 问题

查看课程