在使用IDEA编写spring-boot的配置文件的时候,如果是框架再带的配置项,在深入.的时候会有自动提示。虽然,没有自动提示,在使用的时候,也不会有问题,但是,如果有提示的话,会更加稳妥些。
那么怎么让自己jar包中的配置项也支持自动提示呢?
1.需要将配置项写成一个对象。类似这样的
package com.moensun.cloud.common.utils2.druid; import org.springframework.boot.context.properties.ConfigurationProperties; import java.util.List; /** * Created by Bane.Shi. * Copyright MoenSun * User: Bane.Shi * Date: 2017/7/13 * Time: 16:00 */ @ConfigurationProperties( prefix = "spring.datasource.druid", ignoreInvalidFields = true, ignoreNestedProperties = true ) public class DruidProperties { private int initialSize; private int maxActive; private int minIdle; private long maxWait; private long timeBetweenEvictionRunsMillis; private long minEvictableIdleTimeMillis; private String validationQuery; private Boolean testWhileIdle; private Boolean testOnBorrow; private Boolean testOnReturn; private Boolean poolPreparedStatements; private int maxPoolPreparedStatementPerConnectionSize; private String filters; private List proxyFilters; public int getInitialSize() { return initialSize; } public void setInitialSize(int initialSize) { this.initialSize = initialSize; } public int getMaxActive() { return maxActive; } public void setMaxActive(int maxActive) { this.maxActive = maxActive; } public int getMinIdle() { return minIdle; } public void setMinIdle(int minIdle) { this.minIdle = minIdle; } public long getMaxWait() { return maxWait; } public void setMaxWait(long maxWait) { this.maxWait = maxWait; } public long getTimeBetweenEvictionRunsMillis() { return timeBetweenEvictionRunsMillis; } public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; } public long getMinEvictableIdleTimeMillis() { return minEvictableIdleTimeMillis; } public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; } public String getValidationQuery() { return validationQuery; } public void setValidationQuery(String validationQuery) { this.validationQuery = validationQuery; } public Boolean getTestWhileIdle() { return testWhileIdle; } public void setTestWhileIdle(Boolean testWhileIdle) { this.testWhileIdle = testWhileIdle; } public Boolean getTestOnBorrow() { return testOnBorrow; } public void setTestOnBorrow(Boolean testOnBorrow) { this.testOnBorrow = testOnBorrow; } public Boolean getTestOnReturn() { return testOnReturn; } public void setTestOnReturn(Boolean testOnReturn) { this.testOnReturn = testOnReturn; } public Boolean getPoolPreparedStatements() { return poolPreparedStatements; } public void setPoolPreparedStatements(Boolean poolPreparedStatements) { this.poolPreparedStatements = poolPreparedStatements; } public int getMaxPoolPreparedStatementPerConnectionSize() { return maxPoolPreparedStatementPerConnectionSize; } public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) { this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize; } public String getFilters() { return filters; } public void setFilters(String filters) { this.filters = filters; } public List getProxyFilters() { return proxyFilters; } public void setProxyFilters(List proxyFilters) { this.proxyFilters = proxyFilters; } }
2.还需要在resource下创建文件
resource/META-INFO/spring.factories
com.moensun.cloud.common.utils2.druid.DruidProperties=
这样,需要的配置基本都有了。但是,还不够,还需要生成 spring-configuration-metadata.json
3.在pom中添加生成 json的配置json的jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>
这样,在执行install 就可以了。
毫无违和感。