Spring Boot基本配置之入口类和@SpringBootApplication
在SpringBoot快速搭建中可以看到开发者的工作很少就是创建了一个Controller类,其他Spring Boot框架自动处理好了。那么对于Spring Boot执行的核心原理自动配置怎么理解呢?这就涉及其入口类和@SpringBootApplication。
下面是上篇关于数据库属性注入并放置容器中的案例:
这个类只有一个@SpringBootApplication注解的名为*Application的入口类,入口类里有一个main方法。SpringApplication类执行静态run方法以当前类作为配置类生成容器启动Spring Boot应用项目。
之后的操作与Spring就没什么区别了。那如果直接使用Spring执行类似操作,那么在主执行逻辑(类似Main函数)中的逻辑有哪些呢?首先需导入spring相关jar包,其次用常规属性注入的方式配置数据源并至于容器中,最后获取容器中数据源对象。
具体@SpringBootApplication做了啥呢?其主要组合了@EnableAutoConfiguration、@ComponentScan、@SpringBootConfiguration。如果不适用这个注解,则需要再入口类上直接使用其组合的三个注解。
通过上面流程的比较可知,Spring Boot与Spring在此应用中的最大差异在于导入Spring jar包时,用户使用Spring Boot时不知道自己使用Spring相关的内容——由@EnableAutoConfiguration让Spring Boot根据类路径中的jar包依赖为当前项目信息自动配置(参考Spring Boot自动配置原理)。如果需要关闭特定的配置怎么处理呢?
通过@SpringBootApplication的源码可以知道,应该使用期注解的exclude参数,例如下图中排出数据源的自动配置:
既然是自动配置,那么Spring Boot具体自动配置了哪些jar呢?怎么查看呢?通过以下两种方式可以查看当前项目中已启用和未启用的自动配置报告(根据具体情况选择使用):
1、运行jar时增加 --debug参数:java -jar xx.jar --debug
2、在application.properties中设置属性:debug=true
本文验证采用第二用方式运行main函数,控制台可见哪些配置启动与为启动配置:
启动了的:
未启动的:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?