浅谈springboot

springboot自动装配原理?

自动装配大致流程是通过@SpringBootApplication进行实现。@SpringBootApplication这其实是一个组合注解,有三个主要注解:

1.@SpringBootConfiguration 2.@ComponentScan 3.@EnableAutoConfiguration

@SpringBootConfiguration这个注解 这个其实就是上面介绍过的@Configuration的注解 用于定义bean的,springboot的启动类其实也就是作为spring的一个bean注入到spring容器中。

@ComponentScan 是spring中的注解 主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中。

@EnableAutoConfiguration这个注解 这个是开启自动装配的核心注解,他的作用就是获取配置类 扫描并注入IOC容器中进行管理,他也是组合注解:@AutoConfigurationPackage ​​​​​​​和@Import 

 

简而言之,就是Spring Boot在启动的时候就是从类路径下的META-INF/spring.factories中获取需要自动装配的类 (一些配置组件),找到这些类(XXXAutoConfiguration),通过SpringFactoriesLoader机制创建对应的bean,注入到容器中,完成了自动注入spring容器,本来需要在spring的xml配置文件中去配置bean的操作就免去了 ,也就是springboot完成了自动装配。

 

 

springboot打成jar包为什么能够通过java - jar去运行?

当你运行java -jar命令的时候,它会找META-INF文件下的MANIFEST.MF文件中的Main-Class,最后找到org.springframework.boot.loader.JarLauncher

这个JarLauncher,翻译一下,叫做jar包启动器

当你运行java -jar命令的时候,JarLauncher会将BOOT-INF/classes下的类文件和BOOT-INF/lib下依赖的jar包加载到classpath下。

最后调用META-INF下的MANIFEST.MF文件的Start-Class属性来完成应用程序的启动。

也就是说它是SpringBoot Loader提供了一套标准用于执行SpringBoot 打成的JAR包.

 

posted @   雪域飞魂  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示