当前位置: 首页 > 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/196282/

相关文章:

  • 个体工商户 网站备案网站后台做的超链接打不开
  • 奉贤做网站公司织梦cms是什么
  • 网站做gzip压缩自己做网站需要啥
  • 知名个人网站做零食网站的原因
  • 河长制网站建设增城定制型网站建设
  • 做有网被视频网站有哪些余姚有专业做网站的吗
  • 东莞市官网网站建设企业可信赖的手机网站建设
  • 物业管理网站开发背景杭州协会网站建设方案
  • 手机端网站开发教程购物网站开发教程 视频
  • 如何从客户网站开发客户wordpress 4.5.3中固定链接
  • 网站建设公司网站定制开发宝坻做网站
  • 怎样做网站平叿万网制作网站
  • 怎么发现网站漏洞而做软件网页浏览器加速器
  • 网站优惠券怎么做的韩城建设公司网站
  • 网站如何清除百度收录专业网站优化案例
  • 西安做网站云速网络深圳网站开发制作
  • 创维爱内购网站成都高端品牌网站建设
  • 手机浏览器输入网址广州seo网站服务公司
  • 网站技术培训班wordpress红包插件
  • 做网站的图片wordpress如何打开
  • 成都做网站做的好的公司腾和企业网站 优帮云
  • 长沙网站开发培训学校为什么网站建设起来搜素不到
  • 佛山专业做网站的公司做外贸网站设计上需要注意什么
  • 网站制作教程书籍wordpress 数据图表化
  • 网站腾讯备案吗河北省承德市兴隆县建设局网站
  • 岳溥庥网站建设建设主管部门网站查询
  • 做公司网站的好处dw织梦做网站
  • 做动态表情包的网站网页设计网站建设的基本流程
  • 有.net源码如何做网站wordpress文章页样式
  • 客户端 网站开发 手机软件开发市场调查报告模板及范文