首页新闻动态正文

SpringBoot运行原理【黑马java培训】

更新时间:2021年03月18日 08时58分23秒 来源:黑马程序员论坛

黑马中级程序员课程

Spring Boot并没有任何新的技术,全都是基于Spring4提供的技术,用优秀的设计,为Web开发提供了一套新的方式。

在HelloWorld中,我们没有进行任何显示的配置,但是程序还是运行起来了,那么Spring Boot是怎么做到的呢?那就得从启动类说起。

想要查看原理,肯定得看源码,下面就稍微来小小的瞄几眼@SpringBootApplication这个注解
...
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
      @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
      @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
......
}

@EnableAutoConfiguration会根据类路径中的jar依赖为项目进行自动配置,如:添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,Spring Boot会对Tomcat和Spring MVC进行自动配置

@SpringBootApplication 扫描的是此类同级包及其下属包的Bean,建议放在groupId+arctifactId包下

spring-boot-autoconfigure-1.5.1.RELEASE.jar中的META-INF,下的spring.factories# Auto Configure中,配置了自动扫描方案
  • ConditionalOnBean                   容器中有指定Bean
  • ConditionalOnClass                  类路径下有指定类
  • ConditionalOnCloudPlatform
  • ConditionalOnExpression               基于SpEL表达式作为判断条件
  • ConditionalOnJava                   基于JVM版本作为判断条件
  • ConditionalOnJndi                   在JNDI存在的条件下查总指定位置
  • ConditionalOnMissingBean                    容器中没有指定Bean的情况下
  • ConditionalOnMissingClass              类路径下没有指定类
  • ConditionalOnNotWebApplication                当前项目不是Web项目
  • ConditionalOnProperty                       指定属性是否存在
  • ConditionalOnResource                       类路径是否有指定值
  • ConditionalOnSingleCandidate           指定Bean在容器中只有一个,或者虽然有多个但是指定首选的Bean
  • ConditionalOnWebApplication                   当前项目是Web项目
原文:
   https://www.cnblogs.com/sherrykid/p/6419395.html

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


分享到:
在线咨询 我要报名
和我们在线交谈!