您现在的位置是:首页 >技术交流 >【SpringBoot】二:自动配置网站首页技术交流

【SpringBoot】二:自动配置

Beyong2019 2024-06-17 10:26:13
简介【SpringBoot】二:自动配置

1.自动配置类

Spring Boot的自动装配机制会试图根据你所添加的依赖来自动配置你的Spring应用程序。

例如,如果你添加了Mysql依赖,而且你没有手动配置任何DataSource Bean,那么SpringBoot就会自动配置内存数据库。

你需要将 @EnableAutoConfiguration 或 @SpringBootApplication 注解添加到你的@Configuration 类中,从而开启自动配置功能。

例如之前ssm中使用Mybatis框架

<bean id="dataSource" class="xxxx.DruidDataSource">
  <property name="url" value="jdbc:mysql://localhost:3306/db"/>
  <property name="username" value="root">
</bean>
<bean id="sqlSessionFactory" class="xxx.SqlSessionFactory">
  <property name="dataSource" ref="dataSource"/>
</bean>

现在我们只需开启自动配置即可。
从类路径中,搜索相关的jar,根据jar的内容,尝试创建所需的对象,如果有mybatis.jar,尝试创建DataSource(根据配置文件中的url, username, password)连接数据库,还需要创建SqlSessionFactory, Dao接口的代理对象。这些开放人员不需要写一行代码,就能使用MyBatis框架了。

在这里插入图片描述

2. @Import

可以用来导入额外的配置类。

3. @AutoConfigurationImportSelector

AutoConfigurationImportSelector 间接实现了 ImportSelector 接口,导入自动配置类
自动配置从 jar 的指定文件读取要加载的配置类列表

自动配置类列表:(xxx.imports)
在这里插入图片描述

Spring Boot 之前的版本(2.7)读取 spring.factories 文件。 保留 spring.factories 为了向后兼
在这里插入图片描述
执行流程:
(Mybatis的自动配置类 XXXAutoConfiguration.class)
在这里插入图片描述
(MybatisProperties.class)
在这里插入图片描述
在这里插入图片描述

4. @AutoConfiguration

  • 新的注解@AutoConfiguration,用在自动配置类的上面。相当于增强的@Configuration,专注自动配置类。
  • @AutoConfiguration 还支持通过 after、afterNames、before 和 benameames 属性进行自动配置排序,决定多个自动配置类执行先后顺序.
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。