浅谈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包.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律