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

苏州做网站的公司哪家最好深圳大型网站开发

苏州做网站的公司哪家最好,深圳大型网站开发,泰安房产网签数据汇总,软文标题例子什么是SpringBoot的自动装配 SpringBoot在启动的时候会扫描外部jar包中的META-INF/spring.factories文件,将文件中配置的类信息按照条件装配到Spring容器中。 实现原理 核心注解SpringBootApplication Target({ElementType.TYPE}) Retention(RetentionPolicy.R…

什么是SpringBoot的自动装配

SpringBoot在启动的时候会扫描外部jar包中的META-INF/spring.factories文件,将文件中配置的类信息按照条件装配到Spring容器中。
在这里插入图片描述

实现原理

核心注解@SpringBootApplication

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM,classes = {TypeExcludeFilter.class}
), @Filter(type = FilterType.CUSTOM,classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
  • @Target指定注解的作用范围
  • @Retention指定注解的保留策略
  • @Documented该注解会被文档化
  • @Inherited父类的注解能够被子类继承
  • @SpringBootConfiguration把 @Configuration 注解做一个包装。
  • @ComponentScan指定扫描的策略
  • @EnableAutoConfiguration实现自动装配的核心注解

@EnableAutoConfiguration

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";Class<?>[] exclude() default {};String[] excludeName() default {};
}

AutoConfigurationImportSelector#selectImports,获取到配置的类集合。

    public String[] selectImports(AnnotationMetadata annotationMetadata) {if (!this.isEnabled(annotationMetadata)) {return NO_IMPORTS;} else {AutoConfigurationImportSelector.AutoConfigurationEntry autoConfigurationEntry = this.getAutoConfigurationEntry(annotationMetadata);return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());}}

AutoConfigurationImportSelector#getAutoConfigurationEntry,读取META-INF/spring.factories,获取配置类的集合,并进行合理的过滤。

protected AutoConfigurationImportSelector.AutoConfigurationEntry getAutoConfigurationEntry(AnnotationMetadata annotationMetadata) {if (!this.isEnabled(annotationMetadata)) {return EMPTY_ENTRY;} else {AnnotationAttributes attributes = this.getAttributes(annotationMetadata);List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);configurations = this.removeDuplicates(configurations);Set<String> exclusions = this.getExclusions(annotationMetadata, attributes);this.checkExcludedClasses(configurations, exclusions);configurations.removeAll(exclusions);configurations = this.getConfigurationClassFilter().filter(configurations);this.fireAutoConfigurationImportEvents(configurations, exclusions);return new AutoConfigurationImportSelector.AutoConfigurationEntry(configurations, exclusions);}
}protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {List<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");return configurations;}

Spring Boot 通过@EnableAutoConfiguration开启自动装配,通过 SpringFactoriesLoader 最终加载META-INF/spring.factories中的自动配置类实现自动装配,自动配置类其实就是通过@Conditional按需加载的配置类,想要其生效必须引入spring-boot-starter-xxx包实现起步依赖。

http://www.yayakq.cn/news/348009/

相关文章:

  • 电子商务网站建设与管理实训心得网站改标题
  • 郑州建站系统费用wordpress屏蔽索引
  • 无人机网站建设关键词有哪几种
  • 有关网站建设文章集团有限公司
  • 网站域名优势wordpress用php哪个版本
  • 新乡个人网站建设网站开发 微信收款
  • 想学Wordpress建站国内最新新闻事件今天
  • 网站降权查下空间 网站都有 肿么做网站
  • 中国建设银行网站易方达消费一般购物网站项目
  • 乐山网站seo郑州网官网
  • wordpress网站是什么深圳龙华租房
  • 丽水做企业网站的公司深圳商城网站制作
  • 西安企业网站wordpress插件关闭更新
  • seo快速建站东莞网站建设优化排名
  • 谷歌优化招聘seo深圳网络推广
  • 个人网站怎么建立流程网站建设项目投资测算
  • 南和企业做网站哈尔滨建筑工程
  • 车网站建设策划项目计划书模板word
  • 中国展厅设计公司排名网站打开速度慢 如何优化
  • 网站北京备案快吗做网站哪个公司可以做
  • 大型网站建设视频西安关键词优化平台
  • 想让客户公司做网站的话语微商营销
  • 外贸网站seo怎么做做网站的都是直男癌吗
  • 网站建设与推广实训报告做效果图的素材网站
  • 郑州的网站公司哪家好招聘网站开发计划书
  • 长沙柒零叁网站建设山东免费网站建设
  • 网站运营与管理第二版做旅游网站的要求
  • 中国工程建设管理协会网站个人免费空间申请
  • 网络建设方案设计与实现廊坊关键词优化服务
  • html5高端酒水饮料企业网站模版专业网站建设模块维护