Spring Boot 自定义 starter
在项目开发的过程中,难免需要自己引入一些其他项目的starter, 或是自己定义的starter, 本文是创建自定义的starter的一些步骤.
本文以JDBC配置为例;
一. 首先创建一个maven过程:
二. 引入依赖
maven依赖
<?xml version="1.0" encoding="UTF-8"?>4.0.0 com.feng jdbc-spring-boot-starter 1.0-SNAPSHOT jdbc-spring-boot-starter org.springframework.boot spring-boot-autoconfigure 2.1.6.RELEASE compile org.springframework.boot spring-boot-configuration-processor 2.1.6.RELEASE true org.springframework.boot spring-boot-starter-logging 2.1.6.RELEASE com.alibaba druid 1.1.10 org.projectlombok lombok 1.18.20 provided org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 UTF-8
三. 在项目中新建配置类
配置文件 application.yml
server: port: 8080 jdbc: driver-class-name: com.mnysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/bank?characterEncoding=utf-8&serverTimezone=UTC username: root password: 123
JdbcProperties.java
package com.feng.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Jdbc配置类
*/
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String driverClassName;
private String url;
private String username;
private String password;
public JdbcProperties() {
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
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;
}
}
JdbcConfig.java
package com.feng.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
@ConditionalOnClass(DataSource.class) //包含DataSource这样的类才生效
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
@Bean
public DataSource dataSource(JdbcProperties prop){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(prop.getDriverClassName());
dataSource.setUrl(prop.getUrl());
dataSource.setUsername(prop.getUsername());
dataSource.setPassword(prop.getPassword());
return dataSource;
}
}
还需要在resources 文件目录下新建META-INF目录,新建文件 spring.factories, 配置如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.feng.config.JdbcConfig
四. 打包操作
执行命令: mvn clean install
打包成功后,在本地maven仓库里面,找到对应的jar
五. 上面的jar,可以根据本地仓库中的路径,直接在pom.xml中引用
com.feng jdbc-spring-boot-starter 1.0-SNAPSHOT