关于spring-boot的自动配置原理

本文介绍spring-boot如何通过自动配置简化SSM项目的搭建过程。利用starter依赖自动集成第三方框架,通过自动配置类创建核心组件如SQLSessionFactory并注册为Spring Bean。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    对于初入编程的准程序猿,相信大家对SSM的集成再熟悉不过了,无论是使用xml配置还是使用java代码配置,这些需要手动配置的也比较多,比较麻烦;正是如此,spring-boot这个框架应运而生,我们使用spring-boot框架能够更快的搭建SSM项目,而对于这个框架需要我们配置的也是减少了许多;相信用过的小伙伴都知道,这个框架的使用简单的优点,就像官方所说的“just run”。但是对于spring-boot的自动配置这方面的底层原理,对于准程序猿可能还是在会使用而不了解其原理的状态;因此本文对spring-boot的自动配置进行一定程度的讲解:

    spring-boot项目中的starter依赖能够自动将第三方框架集成到项目中,也就是我们说的自动配置;自动配置的源码在spring-boot-autoconfigure累路径下:

@SpringBootConfiguration:标记当前类为配置类
@EnableAutoConfiguration:开启自动配置
@ComponentScan:扫描主类所在的同级包以及下级包里的Bean

@Configuration
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
要求有一个DataSource的Bean
@ConditionalOnSingleCandidate(DataSource.class)
启动配置属性,关联了一个配置属性类
@EnableConfigurationProperties({MybatisProperties.class})
指定在某些自动配置类之后执行自动配置
@AutoConfigureAfter({DataSourceAutoConfiguration.class, MybatisLanguageDriverAutoConfiguration.class})
public class MybatisAutoConfiguration implements InitializingBean {
    private static final Logger logger = LoggerFactory.getLogger(MybatisAutoConfiguration.class);
    映射的propertis文件属性
    private final MybatisProperties properties;
    ...
    ...

igurationCustomizersProvider.getIfAvailable();

 该底层配置类中会帮我们创建一个SQLSessionFactory,并且注册成springBean

    @Bean
    @ConditionalOnMissingBean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
        factory.setDataSource(dataSource);
        ...
        ...

        return factory.getObject();
    }

自动配置属性类MybatisProperties能获取properties文件中的信息。 

至此也就是spring-boot的自动装配原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值