当前位置: 首页 > news >正文

摄影工作室网站建设模板太原有几个区

摄影工作室网站建设模板,太原有几个区,北京网络营销推广怎么做,微信商城如何开通文章目录一、自动装配的核心触发点#xff1a;SpringBootApplication二、EnableAutoConfiguration的作用#xff1a;导入自动配置类三、自动配置类的加载#xff1a;SpringFactoriesLoader四、自动配置类的条件筛选#xff1a;Conditional注解五、自动配置的完整流程六、自… 文章目录一、自动装配的核心触发点SpringBootApplication二、EnableAutoConfiguration的作用导入自动配置类三、自动配置类的加载SpringFactoriesLoader四、自动配置类的条件筛选Conditional注解五、自动配置的完整流程六、自定义自动配置扩展总结Spring Boot的自动装配Auto-configuration 是其核心特性之一它通过约定大于配置的思想自动完成Spring应用的初始化和组件配置大幅简化了传统Spring应用中繁琐的XML或JavaConfig配置。其核心原理可概括为通过注解触发自动配置逻辑扫描并加载预设的配置类结合条件判断动态注册Bean到Spring容器。 一、自动装配的核心触发点SpringBootApplication Spring Boot应用的启动类通常标注SpringBootApplication注解这个注解是自动装配的“总开关”它是一个复合注解包含三个关键注解 SpringBootConfiguration // 等同于Configuration标记当前类为配置类 ComponentScan // 扫描当前包及子包下的Component等注解注册Bean EnableAutoConfiguration // 核心开启自动装配机制 public interface SpringBootApplication { ... }其中EnableAutoConfiguration是触发自动装配的核心注解。 二、EnableAutoConfiguration的作用导入自动配置类 EnableAutoConfiguration的核心功能是导入预设的自动配置类其底层通过Import(AutoConfigurationImportSelector.class)实现 Import(AutoConfigurationImportSelector.class) // 导入自动配置选择器 public interface EnableAutoConfiguration { ... }AutoConfigurationImportSelector是自动装配的“大脑”它的主要作用是从类路径中加载并筛选出符合条件的自动配置类并将这些类导入到Spring容器中。 三、自动配置类的加载SpringFactoriesLoader AutoConfigurationImportSelector通过SpringFactoriesLoader工具类读取类路径下的META-INF/spring.factoriesSpring Boot 2.7 改为META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件该文件中定义了所有候选的自动配置类全路径。 例如spring-boot-autoconfigure包中的该文件会包含 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration,\ org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\ ...这些类如DataSourceAutoConfiguration、DispatcherServletAutoConfiguration就是Spring Boot预定义的自动配置类分别对应数据源、Web容器等组件的自动配置。 四、自动配置类的条件筛选Conditional注解 加载的候选自动配置类并非全部生效而是通过条件注解Conditional系列 动态判断是否需要生效避免不必要的Bean注册。常见的条件注解包括 注解作用示例场景ConditionalOnClass当类路径中存在指定类时生效只有存在DispatcherServlet类时WebMvc自动配置才生效ConditionalOnMissingClass当类路径中不存在指定类时生效若未引入Redis依赖Redis自动配置不生效ConditionalOnBean当容器中存在指定Bean时生效若已手动定义DataSource数据源自动配置不生效ConditionalOnMissingBean当容器中不存在指定Bean时生效若未手动定义RestTemplate自动配置默认的RestTemplateConditionalOnProperty当配置文件中存在指定属性时生效通过spring.datasource.enabledtrue控制数据源配置是否生效ConditionalOnWebApplication当应用是Web应用时生效WebMvc自动配置仅在Web环境下生效例如DataSourceAutoConfiguration数据源自动配置类的部分代码 Configuration ConditionalOnClass({DataSource.class, EmbeddedDatabaseType.class}) // 存在数据源相关类时生效 ConditionalOnMissingBean(type io.r2dbc.spi.ConnectionFactory) // 不存在R2DBC连接工厂时生效 EnableConfigurationProperties(DataSourceProperties.class) // 绑定配置文件属性 public class DataSourceAutoConfiguration { ... }只有满足所有条件该自动配置类才会被Spring容器加载进而注册数据源相关的Bean如DataSource、DataSourceProperties等。 五、自动配置的完整流程 启动触发应用启动时SpringBootApplication中的EnableAutoConfiguration生效触发AutoConfigurationImportSelector。加载候选配置类AutoConfigurationImportSelector通过SpringFactoriesLoader读取META-INF/spring.factories或新版的imports文件获取所有候选自动配置类。条件筛选根据自动配置类上的Conditional注解过滤掉不满足条件的配置类。注册Bean剩余的自动配置类被Spring容器解析其内部定义的Bean如Bean注解的方法被注册到容器中。配置绑定通过EnableConfigurationProperties将配置文件application.properties/yaml中的属性绑定到对应的配置类如DataSourceProperties绑定spring.datasource.*属性实现配置动态化。 六、自定义自动配置扩展 若需为自定义组件实现自动装配可按以下步骤 创建自动配置类定义一个标注Configuration的类使用Conditional注解控制生效条件通过Bean注册组件。绑定配置属性通过ConfigurationProperties定义配置类绑定应用配置文件中的属性。注册自动配置类在项目的META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中添加自定义自动配置类的全路径。 总结 Spring Boot自动装配的核心原理是通过EnableAutoConfiguration触发借助AutoConfigurationImportSelector加载预设的自动配置类结合Conditional条件注解动态筛选最终将符合条件的Bean注册到Spring容器。这一机制实现了“约定大于配置”大幅简化了Spring应用的初始化流程同时保留了通过自定义配置覆盖默认行为的灵活性。
http://www.zqtcl.cn/news/899217/

相关文章:

  • 免费网站空间怎么做网站主持人
  • 开源建站系统有哪些网站信息化建设合同
  • 昆明云南微网站淄博专业网站建设
  • 古典网站源码海南app开发
  • 自己做网站前期困难吗怎么早网站上放广告
  • 建设银行招标网站南昌网站建设公司信息
  • 网站建设与管理专业介绍湖南长沙邮政编码
  • 社区论坛系统免费开源seo网站诊断报告
  • 网站LOGO透明底色PNG格式怎么做的开发一款游戏需要多少资金
  • 网站推广营销策略北京东直门网站建设
  • 制作公司网站需要购买域名和服务器吗聊城做企业网站
  • 大连网站建设价格低做校招的网站有哪些
  • 电脑端网站和手机网站区别做的好的营销型网站有哪些内容
  • 长沙市做网站网站建设 全是乱码
  • ps做网站原形系统学做网站
  • 接网站 建设wordpress 打开慢 google
  • wordpress 移动 建站网站前台如何做访问量显示
  • 公司做网站买域名之后做什么打鱼网站开发
  • 南京市城乡建设局网站二级建造师证件查询
  • 百度关键词优化系统网站优化师招聘
  • 网站方案建设书推广产品的软文怎么写
  • 网站栏目按扭邢台手机网站建设地方
  • 青浦赵巷网站建设做网站需要编程吗
  • 公司logo设计含义株洲seo
  • 公司制作网站做论坛网站怎么赚钱吗
  • 深圳 外贸 网站建设 龙医院网站建设价格
  • 网上建网站驰易网站建设
  • 建设工程招标专业网站网站联盟广告
  • 自建站英文公司网站制作银川
  • 顺德网站建设公司信息全网推广软件