首页
学习
活动
专区
圈层
工具
发布

spring 自动配置(中) 自动配置原理

@EnableAutoConfiguration作用原理 参考: 深入理解SpringBoot(一) 自动配置 springboot2.0自动注入文件spring.factories如何加载详解 先看springboot2.0...分析得到配置类在ConfigurationClassParser.parse中处理配置类 springboot处理@Import的分析: springboot初始化的普通context(非web) 是...的自动配置类都读取。...当获取主配置文件中属性值时,只需@ConfigurationProperties(prefix = "person")注解来修饰某类,其作用是告诉springBoot,此类中的属性将与默认的全局配置文件中对应属性一一绑定...这个文件毕竟是spring-boot-autoconfigure-processor自动生成的,用于spring加快加载速度用的,我们只要会用就好,不必过于关注其原理。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring Boot的自动配置

    随着Spring家族中的新星Spring Boot的诞生,这些问题都在逐渐被解决。 个人觉得Spring Boot中最重要的两个优势就是可以使用starter简化依赖配置和Spring的自动配置。...Spring自动配置 Spring Boot会根据类路径中的jar包、类,为jar包里的类自动配置,这样可以极大的减少配置的数量。...关于Spring Boot中的Spring自动化配置主要是@EnableAutoConfiguration的功劳。该注解可以让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置。...,这些都是Spring Boot中的自动配置相关类;在启动过程中会解析对应类配置信息。...只有满足这种条件的时候,对应的bean才会被创建。这样做的好处是什么?这样可以保证某些bean在没满足特定条件的情况下就可以不必初始化,避免在bean初始化过程中由于条件不足,导致应用启动失败。

    1.3K20

    spring 自动配置(下) 自动配置总结

    自动配置知识点 总结起来要理解下面几个: 4个配置文件 spring.factories spring-configuration-metadata.json和additional-spring-configuration-metadata.json...1个DeferredImportSelector AutoConfigurationImportSelector 图解 图太大,放不下,请点开大图(不点开大图看的是缩略图),再右键"新标签页打开图片...也可以点开大图保存到本地查看: 自动配置全图解 总结 spring-configuration-metadata.json和spring-autoconfigure-metadata.properties...是插件生成的,additional-spring-configuration-metadata.json一般没补充需求的话也不用写。...所以实际要写的只有spring.factories,尤其要写好"org.springframework.boot.autoconfigure.EnableAutoConfiguration=xxxAutoConfigure

    1.4K40

    spring 自动加载配置

    自动配置文件 1.1 什么是自动配置文件 在上文,我列举了好几个自动配置文件,当你需要开发的包被springboot自动配置时,就要填写上面的一个或更多配置文件。...实际操作时,一般前者是自动生成的,如果需求有变,不用在这个文件上修改,只需修改源代码->maven clean->maven build重新生成一次前者即可。...分析得到配置类在ConfigurationClassParser.parse中处理配置类 springboot处理@Import的分析: springboot初始化的普通context(非web) 是...的自动配置类都读取。...当获取主配置文件中属性值时,只需@ConfigurationProperties(prefix = "person")注解来修饰某类,其作用是告诉springBoot,此类中的属性将与默认的全局配置文件中对应属性一一绑定

    3.9K30

    Spring 中的自动装配

    前言 1.1 Spring 的装配机制 1.2 自动配置的两种方式 2. 利用注解实现自动配置 2.1 @Autowired 2.2 @Qualifier 2.3 @Resource 3....前言 1.1 Spring 的装配机制 自动装配指使用 Spring 满足 Bean 依赖的一种方法,Spring 会在应用上下文中为某个 Bean 寻找其依赖的 Bean,主要有三种装配机制: XML...中显式配置; Java 中显式配置; 隐式的 Bean 发现机制和自动装配; 而 Spring 的自动装配主要从两方面来实现: 组件扫描:Component Scanning,Spring 自动发现应用上下文中所创建的...自动装配:Autowiring,Spring 自动满足不同 Bean 之间的依赖,即 IoC/DI. 1.2 自动配置的两种方式 byName Spring 将先去查找类中所有的 Setter 方法,然后去 Spring 容器中寻找是否有该字符串名称 id 的对象相匹配,如果找到了,就取出注入;若是没有找到,那么就报空指针异常。

    1.3K20

    spring boot自动配置原理

    spring的4种事务特性,5种隔离级别,7种传播行为 自动配置 想使用自动配置,需要在启动类上添加EnableAutoConfiguration注解,但是一般我们都会在启动类上添加springbootapplication...注解,他就包含了自动配置的注解, 自动配置注解代码如下: @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented...(context)方法中,也就是在刷新上下文的时候判断当前是否开启了自动配置,如果开启了自动配置就会进入该方法进行自动配置 @Override public String[] selectImports...类名对应的值 读取了spring.factories文件的内容,然后这个文件找到配置所有EnableAutoConfiguration的值加入到Spring容器中 每一个xxxAutoConfiguration...加入到容器中之后的作用就是用它们来做自动配置,这就是Springboot自动配置之源,也就是自动配置的开始,只有这些自动配置类进入到容器中以后,接下来这个自动配置类才开始进行启动 然后就可以按照编写自定义

    88230

    Spring Boot -- 自动配置原理

    启用自动配置 在Spring Boot中自动配置一般使用@EnableXXX方式,Spring默认提供了@EnableAutoConfiguration来配置starter,另外还提供了类似@EnableScheduling...来配置非starter的相关bean,从源码角度来看,两种方式本质上来说并没什么区别,其都使用了@Import来导入一个对应的配置入口类,然后正在启动中的Spring IoC容器会尝试初始化该类,那么该配置入口类相当于拿到了...如何利用自动配置 自动配置的原理是很简单的,总结起来就两种,如果你想要让用户主动配置,那么可以提供一个自定义的EnableXXX注解,在该注解中import对应的配置类,如果你想让Spring Boot...再启动的时候自动配置,那么在META-INF下提供对应的spring.factories文件,让Spring自动加载对应的配置类。...,那么给每一个服务商写一个EnableXXX注解,让Spring自动配置到IoC容器中,使用方也只需要从IoC中获取,也是一种不错的解耦的设计。

    77420

    Spring Boot自动配置原理

    Spring Boot自动配置是Spring Boot框架的一个重要特性。通过自动配置,我们可以减少很多冗余的配置,让开发者更加聚焦于业务逻辑的实现。...当应用启动时,Spring Boot会根据类路径下的META-INF/spring.factories文件中的配置,加载自动配置类,并根据上述条件注解来判断是否执行自动配置过程,从而实现自动配置。...Boot Starter包含了Mybatis自动配置类,可以方便地将Mybatis集成到我们的Spring Boot应用中。...在我们的实例中,我们将使用Spring Boot自动配置JdbcTemplate。JdbcTemplate是Spring框架提供的一种比较简单易用的JDBC工具。...在日常开发中,使用Spring Boot的自动配置可以大大提升开发效率,减少冗余的配置工作。

    50910

    spring boot自动配置原理

    xxxAutoConfiguration类都是容器中的一个组件,都加入到容器中;用他们来做自动配置; 3)、每一个自动配置类进行自动配置功能; 4)、以HttpEncodingAutoConfiguration...(Http编码自动配置)为例解释自动配置原理; @Configuration //表示这是一个配置类,以前编写的配置文件一样,也可以给容器中添加组件 @EnableConfigurationProperties...类中封装者‘;配置文件能配置什么就可以参照某个功能对应的这个属性类 @ConfigurationProperties(prefix = "spring.http.encoding") //从配置文件中获取指定的值和...我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了) 4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。...我们就可以在配置文件中指定这些属性的值; xxxxAutoConfigurartion:自动配置类; 给容器中添加组件 xxxxProperties:封装配置文件中相关属性; 2、细节 1、@Conditional

    1.1K00

    Spring中bean的配置

    IOC,就是DAO接口的实现不再是业务逻辑层调用工厂类去获取,而是通过容器(比如spring)来自动的为我们的业务层设置DAO的实现类。...其实可以看到IOC真的很简单,当然了IOC简单并不表示spring的IOC就简单,spring的IOC的功能强大就在于有一系列非常强大的配置文件维护类,它们可以维护spring配置文件中的各个类的关系,...">         注意其中的不同颜色部分,这样配置后就表明每次从spring容器中获取HelloWorld的实例的时候就会new一个新对象,即我们所说的原型,spring中scope...ref关键字,这个是表示引用配置文件中的ID为bean_date的对象,另外对于类型,spring会做恰当的转换,比如将345转换成数字等。...当然,spring也提供了自动查找,也就是依赖查找的功能,但是这个我觉得大家还是少用,因为这样会使整个配置文件看起来非常的不直观,而且不清晰,说不定过了一段时间再去看的时候就不知道是什么意思了,在正式应用项目中

    80610
    领券