SpringBoot之自动装配原理

    科技2022-07-17  93

    文章目录

    Properties是属性的意思 零、基本原则和使用步骤* 这里是SpringBoot的精髓 一、需要了解的注解二、细节总结


    Properties是属性的意思

    零、基本原则和使用步骤

    * 这里是SpringBoot的精髓

    为啥把基本原则放在最前面讲呢 , 因为我觉得了解了整个框架以后,更好理解细节

    springboot将需要的功能都集成到了配置中,我的理解是 功能配置化 由于springboot 会自动加载配置类 : 因此在使用的过程中

    先看自动配置是否已经帮我们写好了默认配置类,如果有 ,添加使用并在不满意的地方修改配置即可,没有的话,需要先手动配置

    如何修改属性值 : 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这 些属性的值; 如,在application.properties文件中修改如下配置的值 : spring.activemq.non-blocking-redelivery=


    一、需要了解的注解

    1. @EnableAutoConfiguration 开启自动配置 2. @Import(param) 导入组件 3. @Configuration 一个配置类,将该类添加给容器 4. @EnableConfigurationProperties(param) 启动指定 ConfigurationProperties功能,并把该类加载入ioc容器 5. @ConfigurationProperties(prefix="") 将配置文件中指定的值 与bean中的属性绑定 6. @ConditionalOnWebSApplication 判断是否为web应用, 如果不是就使配置失效 7. @ConditionalOnProperty 判断配置文件中是否存在某个配置 8. @Bean 要给容器中添加的组件

    第五点示例 ↓ :

    @ConfigurationProperties(prefix = "spring.http.encoding") public class HttpEncodingProperties {

    关于Conditional开头的注解 : 在spring boot中 , 以此开头的是用于判断自动配置是否生效,是对spring原生的@Conditional注解的扩展


    二、细节

    自动装配中,当配置类生效时 , 组件的属性是从XxxxProperties文件中获取的,而XxxxProperties类中属性又与配置文件application.properties绑定

    注意上面说的XxxxProperties和application.properties , 在application.properties中ctrl+左键单击对应的配置,就会进入XxxxProperties ,前者是配置类,后者是配置文件

    总结

    水平有限,只能是边用边体会原理了

    Processed: 0.010, SQL: 8