前言:
若有不足之处望各位大佬们指正(’∇’)シ
目录
1.创建一个Maven项目
项目名:
hbmdxm-spring-boot-starter-jdbc
项目的基本信息:
<groupId>com.example</groupId>
<artifactId>hbmdxm-spring-boot-starter-jdbc</artifactId>
<version>1.0</version>
导入需要的依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.6.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.6.3</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
</dependencies>
2.创建相关文件
2.1 定义业务接口、需要的实体类等业务对象
这里我们只需要一个实体类
private String driverClass;
private String url;
private String userName;
private String password;
//得到链接
public Connection getConn(){
try {
Class.forName(driverClass);
return DriverManager.getConnection(url,userName,password);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//关闭链接
public void close(Connection conn, Statement stat, ResultSet rs){
try {
if(rs!=null){
rs.close();
}
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
public String getDriverClass() {
return driverClass;
}
public void setDriverClass(String driverClass) {
this.driverClass = driverClass;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
2.2 定义配置属性类
@ConfigurationProperties(prefix = "hbmdxm.jdbc")
public class BaseDaoProperties {
private String driverClass="com.mysql.jdbc.Driver";
private String url="jdbc:mysql://127.0.0.1:3306/java187";
private String userName="root";
private String password="123";
public String getDriverClass() {
return driverClass;
}
public void setDriverClass(String driverClass) {
this.driverClass = driverClass;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
2.3定义自动装配类
@Configuration
@EnableConfigurationProperties(BaseDaoProperties.class)
public class BaseDaoAutoConfigure {
@Autowired
private BaseDaoProperties bp;
@Bean
public BaseDao baseDao(){
BaseDao bd=new BaseDao();
bd.setDriverClass(bp.getDriverClass());
bd.setUrl(bp.getUrl());
bd.setUserName(bp.getUserName());
bd.setPassword(bp.getPassword());
return bd;
}
2.4新建spring.factories
Resources目录下新建META-INF/spring.factories,加入自定义starter的配置项
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.BaseDaoAutoConfigure
3.打包
通过指令install打成jar包,收录到本地仓库中
通过包名com.example 可以在仓库中查看是否已经存在
D:\Users\aya4\.m2\repository\com\example\hbmdxm-spring-boot-starter-jdbc
4.使用
4.1导入依赖
根据hbmdxm-spring-boot-starter-jdbc的项目信息:
<groupId>com.example</groupId>
<artifactId>hbmdxm-spring-boot-starter-jdbc</artifactId>
<version>1.0</version>
<dependency>
<groupId>com.example</groupId>
<artifactId>hbmdxm-spring-boot-starter-jdbc</artifactId>
<version>1.0</version>
</dependency>
4.2查看依赖
导入依赖后我们可以在External LIbraries下查看到
4.3 是否可以使用
在配置文件中可以正常提示
hbmdxm.jdbc.driver-class=com.mysql.jdbc.Driver
hbmdxm.jdbc.password=123
hbmdxm.jdbc.url=jdbc:mysql://127.0.0.1:3306/examp
hbmdxm.jdbc.user-name=root
@Autowired
BaseDao baseDao;