SpringBoot原理篇(1)—自动配置

22 篇文章 0 订阅

目录

一、自动配置

1.1 bean的加载方式

1.1.1 加载方式(一)

1.1.2 加载方式(二)

1.1.3 加载方式(三)

1.1.4 Bean的加载方式——扩展

1.1.5 加载方式(四)

1.1.6 加载方式(五)

1.1.7 加载方式(六)

1.1.8 加载方式(七)

1.1.9 加载方式(八)

1.2 bean的加载控制

1.3 bean依赖的属性配置

1.4 自动配置原理

1.4.1 变更自动配置


一、自动配置

1.1 bean的加载方式

1.1.1 加载方式(一)

  • XML方式声明bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--xml方式声明自己开发的bean-->
    <bean id="cat" class="com.learn.bean.Cat"/>
    <bean class="com.learn.bean.Dog"/>

    <!--xml方式声明第三方开发的bean-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"/>
    <bean class="com.alibaba.druid.pool.DruidDataSource"/>
    <bean class="com.alibaba.druid.pool.DruidDataSource"/>

</beans>

1.1.2 加载方式(二)

  • XML + 注解方式声明bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation=
               "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!--指定加载bean的位置,component-->
    <context:component-scan base-package="com.learn.bean,com.learn.config"/>

</beans>

1.1.3 加载方式(三)

  • 注解方式声明配置类

1.1.4 Bean的加载方式——扩展

  • (一)

  • (二)

  • (三)

1.1.5 加载方式(四)

 

1.1.6 加载方式(五)

  • 使用上下文对象在容器初始化完毕后注入bean

1.1.7 加载方式(六)

  • 导入实现了ImportSerlector接口的类,实现对导入源的编程式处理

1.1.8 加载方式(七)

  • 导入实现了ImportBeanDefinitionRegistrar接口的类,通过BeanDefinition的注册器注册实名bean,实现对容器中bean的裁定,例如对现有bean的覆盖,进而达成不修改源代码的情况下更换实现的效果

1.1.9 加载方式(八)

  • 导入实现了BeanDefinitionRegistryPostProcessor接口的类,通过BeanDefinition的注册器注册实名bean, 实现对容器中bean的最终裁定

1.2 bean的加载控制

  • 使用 @Conditional 注解的派生注解设置各种组合条件控制bean的加载

1.3 bean依赖的属性配置

  • 将业务功能bean运行需要的资源抽取成独立的属性类(******Properties),设置读取配置文件信息

  • 配置文件中使用固定格式为属性类注入数据

  • 定义业务功能bean,通常使用 @Import 导入,解耦强制加载bean

  • 使用 @EnableConfigurationProperties 注解设定使用属性类时加载bean

 

1.4 自动配置原理

 

 

 

 

 

1.4.1 变更自动配置

  • 变更自动配置:取出tomcat自动配置(条件激活),添加jetty自动配置(条件激活)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值