找回密码
 立即注册
查看: 9|回复: 0

12,自定义starter

[复制链接]

215

主题

6

精华

219

金币

技术维护QQ:515138

积分
468
发表于 昨天 08:41 | 显示全部楼层 |阅读模式
在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在SpringBoot的项目中,一般会将这些公共组件封装为SpringBoot 的 starter。
需求:自定义mybatis的starter
1,创建 dmybatis-spring-boot-autoconfigure 模块,提供自动配置功能,并自定义配置文件 META-INF/spring/xxx.imports
2,创建 dmybatis-spring-boot-starter 模块,在starter中引入自动配置模块

1.jpg

  1. package com.jinhei.config;
  2. import org.apache.ibatis.annotations.Mapper;
  3. import org.mybatis.spring.SqlSessionFactoryBean;
  4. import org.mybatis.spring.mapper.MapperScannerConfigurer;
  5. import org.springframework.beans.factory.BeanFactory;
  6. import org.springframework.boot.autoconfigure.AutoConfiguration;
  7. import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
  8. import org.springframework.context.annotation.Bean;
  9. import javax.sql.DataSource;
  10. import java.util.List;
  11. @AutoConfiguration // 表示当前类是一个自动配置类
  12. public class MyBatisAutoConfig {
  13.      // SqlSessionFactoryBean
  14.     // JDBC连接池提供了 DataSource
  15.     @Bean
  16.     public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
  17.         // 创建SqlSessionFactoryBean对象,会话对象,用于链接数据库
  18.         SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
  19.         sqlSessionFactoryBean.setDataSource(dataSource);
  20.         // sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
  21.         return sqlSessionFactoryBean;
  22.     }
  23.     // MapperScannerConfigurer
  24.     // 扫描mapper接口
  25.     @Bean
  26.     public MapperScannerConfigurer mapperScannerConfigurer(BeanFactory beanFactory){
  27.         MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
  28.         // 扫描的包:启动类所在的包及其子包
  29.         List<String> packages = AutoConfigurationPackages.get(beanFactory);
  30.         // 启动类包名只有一个,所以只取第一个
  31.         String p = packages.getFirst();
  32.         // 表示扫描启动类对应的包及其子包下的所有接口
  33.         mapperScannerConfigurer.setBasePackage(p);
  34.         // 扫描的注解
  35.         mapperScannerConfigurer.setAnnotationClass(Mapper.class);
  36.         return mapperScannerConfigurer;
  37.     }
  38. }
复制代码
2.jpg

3.jpg
dmybatis.zip (64.84 KB, 下载次数: 0, 售价: 50 金币)


上一篇:11,安装jar包到maven本地仓库脚本
下一篇:13,开发模式&amp;环境搭建,springboot3.5.11
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2026-2-27 06:13

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表