使用druid的datasource设置数据库密码加密
...
@Configuration
@EnableConfigurationProperties(DataSourceProperties.class)
public class DataSourceAutoConfiguration {
@Resource DataSourceProperties properties;
@Bean
public DataSource dataSource() throws Exception {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(properties.getUrl());
// 获取配置中的加密密码,解密之后置入dataSource
String userName = properties.getUsername();
dataSource.setUsername(Crypt.decrypt(userName));
String passWord = properties.getPassword();
dataSource.setPassword(Crypt.decrypt(passWord));
dataSource.setDriverClassName(properties.getDriverClassName());
//检测连接是否有效的查询sql
dataSource.setValidationQuery("select 1");
//初始化时建立物理连接的个数
dataSource.setInitialSize(1);
//最小连接池数量
dataSource.setMinIdle(1);
//最大连接池数量
dataSource.setMaxActive(20);
//设置最大等待时间
dataSource.setMaxWait(60000);
//设置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
dataSource.setMinEvictableIdleTimeMillis(300000);
//申请连接时执行validationQuery检测连接是否有效,默认true
dataSource.setTestWhileIdle(true);
dataSource.setTestOnBorrow(false);
dataSource.setTestOnReturn(false);
//打开PSCache,并且指定每个连接上pscache的大小
dataSource.setPoolPreparedStatements(true);
dataSource.setMaxOpenPreparedStatements(20);
return dataSource;
}
}
...
可以用base64等加密,