springboot可以使用${}读取环境变量,利用这种特性,可以将数据库的url,user,password敏感信息进行隐藏.
即:向系统添加环境变量DB_HOST(数据库ip+端口),DB_USER(数据库用户),USER_PASSWORD(数据库密码).
在springboot配置文件中使用 D B H O S T , {DB_HOST}, DBHOST,{DB_USER},${DB_PASSWORD}替换原有配置.
从而实现保护敏感信息,防止泄露数据库所在服务器以及数据库账号密码.
1.搭建一个基础项目
搭建一个基础项目用于验证是否能够正常连接数据库以及获取环境变量.
数据库脚本:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`age` int(0) NULL DEFAULT NULL,
`hobby` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'zm', 18, '唱');
INSERT INTO `user` VALUES (2, 'cxk', 20, '跳');
INSERT INTO `user` VALUES (3, 'zwl', 21, 'rap');
INSERT INTO `user` VALUES (4, 'zyz', 22, '篮球');
INSERT INTO `user` VALUES (5, 'lhs', 27, '写代码');
SET FOREIGN_KEY_CHECKS = 1;
项目中使用的依赖信息:
springboot+mybatis+druid+druid.
mysql使用的是8.0
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lhs</groupId>
<art