Spring Boot 最大的特点就是主动配置了,大大的缩小了传统 Spring 框架的繁琐配置,通过几行简略的配置就能够实现其余组件的接入。比方你想要连贯 mysql 数据库,只须要的配置文件外面退出 mysql 的一些配置信息就能够了。为了爱护数据的安全性,越来越多的公司抉择加密这些重要信息。接下来一起来看看如何实现配置加密文件并且胜利连贯数据库的。
配置信息加密有好几种形式,这里我只具体的写一下我比拟罕用的一种形式。首先通过某种加密算法将用户名和明码进行加密,而后在配置文件中用加密串代替原来的明文。而后自定义数据源,在自定义数据源中解密用户名和明码。
SpringBoot 主动拆卸
SpringBoot 的主动拆卸,以前的推文中也具体的讲到过,明天简略来温习一下。在每个 Spring Boot 的利用的启动类上都能发现有一个注解 @SpringBootApplication
,这个注解蕴含的注解@EnableAutoConfiguration
就是用来实现主动拆卸的。这个注解通过导入类 AutoConfigurationImportSelector
,这个类中有一个办法selectImports
,其作用就是扫描所有 jar 包中的META-INF/spring.factories
文件,去加载外面的具体实现类,实现主动拆卸。
在 spring-boot-autoconfigure
jar 包的META-INF/spring.factories
文件中指定了一个类用来加载数据库配置信息,这个类就是org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
。
自定义数据源
这里应用 HikariDataSource
作为自定义的数据源,自定义的数据源目标就是为了解密配置文件中的配置信息。
@Configuration
public class DataSourceConfiguration {
@Autowired
DataSourceProperties properties;
@Bean
public DataSource dataSource() throws Exception{String username = Des3.decryptThreeDESECB(properties.getUsername(),Des3.DES3KEY);
String password = Des3.decryptThreeDESECB(properties.getPassword(),Des3.DES3KEY);
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName(properties.getDriverClassName());
dataSource.setJdbcUrl(properties.getUrl());
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
配置文件信息如下:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxx
username: aMkeRCLWqNw=
password: rq-fzucH32I=
具体的加解密算法这里就不在提及了,依据具体要求抉择一种可逆的加密算法就能够了,如果还不是很理解加密算法的品种,能够参考我以前写的一篇文章——面试官:说一下你罕用的加密算法。
此是 spring-boot-route 系列的第十一篇文章,这个系列的文章都比较简单,次要目标就是为了帮忙首次接触 Spring Boot 的同学有一个零碎的意识。本文已收录至我的 github,欢送各位小伙伴star
!
github:https://github.com/binzh303/s…
点关注、不迷路
如果感觉文章不错,欢送 关注 、 点赞 、 珍藏,你们的反对是我创作的能源,感激大家。
如果文章写的有问题,请不要悭吝,欢送留言指出,我会及时核查批改。
如果你还想更加深刻的理解我,能够微信搜寻「Java 旅途」进行关注。回复「1024」即可取得学习视频及精美电子书。每天 7:30 准时推送技术文章,让你的下班路不在孤单,而且每月还有送书流动,助你晋升硬实力!