SpringBoot注解
自动配置源码解析
- 解析@SpringBootApplication(组合注解,jdk1.5)
- 元注解
- Target
- Retention
- Documented
- Inherited:表示注解会被子类自动继承@SpringBootApplication
- @SpringBootConfiguration
- arget
- Retention
- Documented
- Configuration 等价于SpringBootConfiguration
- @EnableAutoConfiguration
- 开启自动扫描:用户自定义的(@Controller、@Service..)、框架启动时自带配置,创建工作交给Spring
- @AutoConfigurationPackage
- 用户自定义的类
- @Import(AutoConfigurationPages.Registrar.class):Registrar.registerBeanDefinitons()
- @Import(AutoConfigurationImportSelector.class)
- 导入框架启动时自带配置
- AutoConfigurationImportSelector.getCandidateConfigurations()加载引入的Spring-boot-*-Autoconfig包META-INFO文件加下spring.factories文件内相关的类路径
- @EnableXXX:开启某一项功能,简化代码导入,使用该类注解,就会自动导入某些类。该类注解时组合注解,一般都会组合@Import注解。一般导入类分三种:配置类、注册器、选择类
- 配置类:配置类一般以Configuration结尾,且该类上会注解@Configuration,表示该类为配置类
- 注册器:注册时一般以Registrar结尾,且该类实现了ImportBeanDefinitionRegistrar接口,表示可以在运行时动态注册指定类的实例。
- 选择类:选择器一般以selector结尾,且该类实现了ImporSelector接口,表示当前类会根据条件选择导入的不同的类。
- @ComponentScan
- 配置扫描指令注解:
- 用于扫描带有@Configuration的类;
- 提供并执行支持xml(<context:component-scan>)即注解和xml可以一起使用。
- 指定会被扫描的包
- @Repeatable
- 表明它标注的注解及其再上一级标注的注解能被多次使用,但是要指明不同属性
- includeFilters:指定这些类所在包
- excludeFilters:排除这些类所在包
- 只是配置了扫描指令,没有扫描
- 配置扫描指令注解:
- 元注解
- Starter工程的命名需要遵循的规范
- Spring官方定义的Starter格式:Spring-boot-starter-{name}
- 非官方定义的Starter的格式:{name}-Spring-boot-starter
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!