自定义starter
用途
实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在springboot的项目中,一般会将这些公共组件封装为SpringBoot的starter。
![]()
****-autoconfigure 提供自动配置功能
****-starter 提供依赖管理功能
我们会在 -starter中引入 -autoconfigure功能,这样在引入 -starter就可以了,就相当于把 -autoconfigure也引入进来了
实践:自定义 mybatis的 starter
-
创建
dmybatis-spring-boot-autoconfigure模块,提供自动配置功能,并自定义配置文件META-INF/spring/xxx.imports -
创建
dmybatis-spring-boot-starter模块,在starter模块中引入自动配置模块

@AutoConfiguration//表示当前类是一个自动配置类
public class MybatisAutoConfig {
//SqlSessionFactoryBean
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
return sqlSessionFactoryBean;
}
//MapperScannerConfigure
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(BeanFactory beanFactory){
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
//扫描的包:启动类所在的包及其子包
List<String> packages = AutoConfigurationPackages.get(beanFactory);
String p = packages.get(0);
mapperScannerConfigurer.setBasePackage(p);
//扫描的注解:mapper注解
mapperScannerConfigurer.setAnnotationClass(Mapper.class);
return mapperScannerConfigurer;
}
}
com.htu.config.MybatisAutoConfig

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.htu</groupId>
<artifactId>DMybatis-Spring-Boot_Starter</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>DMybatis-Spring-Boot_Starter</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- !!!!!-->
<dependency>
<groupId>com.htu</groupId>
<artifactId>DMybatis-Spring-Boot-AutoConfigre</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.0</version>
</dependency>
<!-- !!!!!!!!!-->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
总结
自定义 starter就是自定义启动依赖,方便了项目的开发,自定义starter与引入jar包应该有异曲同工之妙
本文介绍了如何在SpringBoot项目中创建自定义starter,集成mybatis的自动配置功能,以简化公共组件管理和项目开发。作者详细展示了如何创建自动配置类和starter模块,以及Maven配置。
701

被折叠的 条评论
为什么被折叠?



