Druid数据源使用(二)---密码加解密

在springboot中结合druid数据源,将数据库密码进行加密,使用druid的jar包中的工具类: com.alibaba.druid.filter.config.ConfigTools

1.生成加密密码:

java -cp druid-1.1.16.jar com.alibaba.druid.filter.config.ConfigTools 密码>aaa.txt

2.生成的aaa.txt中包含公钥、私钥和加密后的密码,复制公钥和加密后的密码到application.properties的配置文件

spring.datasource.type=com.hurricane.druid.datasource.DruidDataSourceWrapper
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/temp?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=VOwyMYHXa+lAnp6ZqjiJ0wwDa/lY9Dub6ndGvRz/Y8Ed8H+OOTLWZOKaZ7u/h3haex0/gw==

spring.datasource.druid.filters=config
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQAJBAIwAz21I0ndCW+nVfVc6mmpNsmfz4WPfEeWZAi8AwWIhA1GPKiu+1pYo15nZ5aUPqpxZWkX1IUlUdlfkgonf9gUCAwEAAQ==

关于使用配置filters和connection-properties,试了各种方式,最后还是参考源码注释来这样配置成功的,可以参考文件com.alibaba.druid.filter.config.ConfigFilter的源码注释。

密码解密:

	public static void main(String[] args) throws Exception {
//		String pwdString = ConfigTools.decrypt("MFwwDQKoZIhvcNAQEBBQADSwAwSAJBAJpO+exF8xADQjhkpb8vWo3aBoZnZpAtVl9g8KUVqg0MPBVeuRXR/SHewuaVZmlFkXaUe9FlBl6Qa9hOttBoUy0CAwEAAQ==", "UAzCvOJib6RSD8MQoC7xaLes2dtd+noAl5DzoD6JWU87UTQ0f3ltwuwWfl0O4xTspLDF6JZm4nTjjh0+v4iQ==");
//		System.err.println(pwdString);
//		String encrypt = ConfigTools.encrypt("abc");
//		System.out.println(encrypt);
		ConfigTools.main(new String[] {"abc"});
	}

以上。

	public static void main(String[] args) {
		int i = 0;
		for (;;) {
			System.out.println(i++);
			try {
				System.out.println("before ex");
				int j = 1 / 0;
			} catch (Exception ex) {
				if (i < 3) {
					System.out.println("catch");
					continue;
				}
				throw ex;
			}
			System.out.println(111);
		}
	}

1.用for(;;)代替while(true)有什么好处吗?    2.尝试操作次数用异常进行控制。

testOnBorrow是从数据源获取链接时,是否进行验证链接的可用性,testOnIdle是从数据源获取链接时,判断获取到的链接的空闲时间是否大于指定的值(timeBetweenEvictionRunsMillis),若大于则进行链接可用性的校验。因此testOnBorrow与testOnIdle没有必要同时使用true。

从数据源获取的链接默认是自动提交的。

参考:druid加密 springboot application.properties配置文件数据库密码加密_cshongye的专栏-CSDN博客

使用`druid-spring-boot-starter`整合Druid到Spring Boot项目中,按照以下步骤操作: 1. **添加Maven依赖**[^2]: 在你的项目的`pom.xml`文件内,添加如下依赖到`<dependencies>`标签下: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.9</version> <!-- 或者最新的版本 --> </dependency> ``` 2. **配置数据库连接池**: - 在application.properties或application.yml文件中,设置Druid的相关配置。例如,基本配置可能包括数据库URL、用户名和密码: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.initial-size=5 spring.datasource.min-idle=5 spring.datasource.max-active=20 ``` 3. **启用自动配置**: `druid-spring-boot-starter`会自动配置DruidDataSource bean,无需手动创建。你可以通过`@Autowired`来注入这个bean,在需要的地方使用。 4. **监控与管理**: - Druid提供了web界面供你查看数据库连接状态、SQL执行情况等。默认情况下,访问`http://localhost:8080/druid/`(假设端口未修改)即可查看。 以下是一个简单的示例,展示如何在Spring Boot中使用Druid DataSource[^1]: ```java @Configuration public class DruidConfig { @Value("${spring.datasource.url}") private String url; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Bean public DataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); // 其他可选配置... return dataSource; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值