SpringBoot 自定义配置
2021-02-19 09:18
标签:set 生成 conf abc time com pid boot ruid 有时候需要自己定义一些配置,比如SpringBoot没有提供Druid连接池的配置,需要我们自己写配置。 三点: 编译,target/classes/META-INF下会生成一个spring-configuration-metadata.json文件,在配置文件中写相关配置时就有提示啦(如果已存在该配置项,则不会提示)。 SpringBoot 自定义配置 标签:set 生成 conf abc time com pid boot ruid 原文地址:https://www.cnblogs.com/chy18883701161/p/12685833.html配置文件
#指定数据源类型为Druid
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
##########druid连接池配置#########
spring.datasource.druid.url=jdbc:mysql://127.0.0.1/db_xm_mall?serverTimezone=UTC
spring.datasource.druid.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.druid.username=chy
spring.datasource.druid.password=abcd
##初始连接数,默认0
spring.datasource.druid.initialSize=10
#最大连接数,默认8
spring.datasource.druid.maxActive=30
spring.datasource.druid.minIdle=10
#获取连接的最大等待时间,单位毫秒
spring.datasource.druid.maxWait=2000
#缓存PreparedStatement,默认false
#spring.datasource.druid.poolPreparedStatements=true
#缓存PreparedStatement的最大数量,默认-1(不缓存)。大于0时会自动开启缓存PreparedStatement,所以可以省略上一句设置
spring.datasource.druid.maxOpenPreparedStatements=20
配置类
/**
* 初始化Druid连接池
*/
@ConfigurationProperties("spring.datasource.druid") //指定前缀
@Component //也可以使用@Configuration,@Configuration包含了@Component
@Setter //Lombok的注解。流程是调用空参构造器创建对象,再调用setter方法注入属性值,也可以使用@Data
public class DruidConfig {
//属性名要与springboot配置文件中属性名一致
private String url;
private String driverClassName;
private String username;
private String password;
private int initialSize;
private int maxActive;
private int minIdle;
private int maxWait;
// private boolean poolPreparedStatements;
private int maxOpenPreparedStatements;
@Bean //放到Spring容器中
// @Primary //声明为主数据源,如果配置了多个数据源,未显式指定使用哪个数据源时,自动使用主数据源
public DataSource dataSource() {
DruidDataSource datasource = new DruidDataSource();
datasource.setUrl(url);
datasource.setDriverClassName(driverClassName);
datasource.setUsername(username);
datasource.setPassword(password);
datasource.setInitialSize(initialSize);
datasource.setMaxActive(maxActive);
datasource.setMinIdle(minIdle);
datasource.setMaxWait(maxWait);
// datasource.setPoolPreparedStatements(poolPreparedStatements);
datasource.setMaxOpenPreparedStatements(maxOpenPreparedStatements);
return datasource;
}
}
如果要写配置文件时有相应的提示,需要加一个依赖
dependency>
groupId>org.springframework.bootgroupId>
artifactId>spring-boot-configuration-processorartifactId>
optional>trueoptional>
dependency>
上一篇:每日算法-06