用手机建网站的步骤php开源建站系统
前言
为什么要学习自定义starter?
- 满足实际开发的需要
怎么自定义 starter
1 首先我们可以参考以下别人自定义的starter: mybatis 起步依赖
如下图所示,我在springboot 项目的pom文件,引入mybatis 起步依赖,可以发现在外部库可以看到两个模块:1 自动配置模块 2 自定义starter 模块
功能
两者关系:往往是在starter模块中引入自动配置模块
demo(案例)
需求:自定义 mybatis的starter
自动配置模块
步骤
创建dbmybatis-spring-boot-autoconfigure模块,提供自动配置功能,并自定义配置文件META-INF/spring/xxx.imports具体步骤
0 创建 一个空的项目 选择添加模块,分别命名为 自动配置模块,starter模块
1 模仿 mybatis 起步依赖 ,添加我们需要的以些依赖
- 可以发现,除了我标示的,其他的依赖都需要向 我们自定义的自动配置模块 pom文件添加
代码:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>3.4.3</version></dependency><dependency><groupId> org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>3.4.3</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.14</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency>
2 写一个自动配置类
样图
代码:
package com.it.heima.config;import org.apache.ibatis.annotations.Mapper; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.beans.factory.BeanFactory; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurationPackages; import org.springframework.context.annotation.Bean;import javax.sql.DataSource; import java.util.List;@AutoConfiguration public class MybatisAutoConfig {// SqlSessionFactoryBean@Beanpublic SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);return sqlSessionFactoryBean;}//MapperScannerConfigurer@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(BeanFactory beanFactory){MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();// 指定扫描的包List<String> packages = AutoConfigurationPackages.get(beanFactory);String s = packages.get(0);mapperScannerConfigurer.setBasePackage(s);// 扫描的注解mapperScannerConfigurer.setAnnotationClass(Mapper.class);return mapperScannerConfigurer;} }
3 向 resources文件夹添加.import 配置文件【存储 自动配置类的全类名】
格式如下图所示:
starter模块
步骤
创建 dmybatis-spring-boot-starter模块,在starter中引入自动配置模块
1 向 starter 模块的pom文件中,引入刚刚写的自动配置模块 和自动配置模块需要的以些依赖
代码:
<dependencies><dependency><groupId>com.it.heima</groupId><artifactId>dbmybatis-spring-boot-autoconfigration</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>3.4.3</version></dependency><dependency><groupId> org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>3.4.3</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.14</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
完成之后当我们引入 starter 模块时,就相当于我们平时使用的mybatis起步依赖
创建第三个模块作为 springboot项目:在创建时,引入 springWeb 依赖【作为与前端进行交互】
demo(案例):springboot整合mybatis
目的:通过浏览器,通过输入查询参数,查询user 表的信息
项目准备
1 tb_user 数据表 和User 实体类
- tb_user 数据表
- User 实体类
2 pom 文件添加 之前准备好的starter 模块
<dependency><groupId>com.it.heima</groupId><artifactId>dbmybatis-spring-boot-starter</artifactId><version>1.0-SNAPSHOT</version></dependency>
3 yml 配置文件书写 连接数据库的信息
正文
项目结构
mapper 持久层
- UserMapper
controller控制层
- UserController
service 逻辑处理层
UserService 接口- User findById(Integer userId);方法
impl-接口的实现子包-UserServiceImpl.java
启动类:SpringMybatisApplication 类
运行截图
浏览器访问 数据库