框架参数配置

1、参数一览

  • 所有的参数集中在wukong-boot-configuration统计管理。
  • 在 IDEA 中会自动提示如何填写参数。
参数名类型默认值说明
wukong.db.auto-fill-date-column.enabledBooleanfalse是否启用自动添加数据库日期字段
wukong.db.auto-fill-date-column.date-columnsString[]null要更新的日期字段

Spring 自带的参数

参数名类型默认值说明
context.initializer.classesStringcom.wukong.db.initializer.CheckDbInitializer会自动校验要连接的数据库是否存在,如果不在,就创将一个空库
spring.datasource.*suitnull如果要连接数据库,那么这些数值就一定要配置

2、如何使用

2.1 使用@Autowired

pringBoot可控的类中,使用@Autowired获取配置文件

@Configuration
public class MybatisConfig {
private final boolean canAutoFillDate;
@Autowired(required = false)
public MybatisConfig(WkConfigurationProperties wkConfigurationProperties){
assert wkConfigurationProperties!=null;
canAutoFillDate=wkConfigurationProperties.getDb()
.getAutoFillDateColumn()
.isEnabled();
}

2.2 使用 SpringUtils.getBean

在非可控的class使用SpringUtils.getBean

WkConfigurationProperties wkConfigurationProperties=SpringUtils.getBean(WkConfigurationProperties.class);
String[] autoFillColumns = wkConfigurationProperties.getDb().getAutoFillDateColumn().getDateColumns();

3、实现过程

3.1 添加依赖

spring-boot-configuration-processor会根据代码,自动生成build/classes/java/main/META-INF/spring-configuration-metadata.json

//用来自动生成配置文件
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor"){
exclude(group: "org.springframework", module: "spring-web")
exclude(group: "org.springframework", module: "spring-webmvc")
exclude(group: "org.springframework", module: "spring-core")
exclude(group: "org.springframework", module: "spring-context")
exclude(group: "com.vaadin.external.google", module: "android-json")
exclude(group: "org.json", module: "json")
exclude(group: "commons-cli", module: "commons-cli")
exclude(group: "ch.qos.logback", module: "logback-core")
exclude(group: "ch.qos.logback", module: "logback-classic")
}

3.2 撰写代码

@Component
@ConfigurationProperties("wukong")
@Getter
@Setter
public class WkConfigurationProperties implements Serializable {
@Serial
private static final long serialVersionUID = -8620267783496071683L;
@NestedConfigurationProperty
private DbProperties db=new DbProperties();
}

3.3 未来要完善的

添加自动校验的功能。

  • 在属性上添加注释,这样当用户没有设置的时候,就会校验出错误
  • 在属性上添加注释,当用户输入的参数格式不对,就会校验出错误