# Spring Boot-配置文件之特殊配置

# 配置随机数

summer:
  config:
    title: @summer.config.title@
    # 随机字符串
    randomStr: ${random.value}
    # 随机int
    randomInt: ${random.int}
    # 随机long
    randomLong: ${random.long}
    # 10以内随机数
    random10: ${random.int(10)}
    # 10-20随机数
    random20: ${random.int[10,20]}

默认值: 占位符获取之前配置的值,如果没有可以使用“冒号”指定默认值

${HOST:localhost}

# 配置内容加密

在使用配置文件中,如果涉及到密码之类的敏感信息,直接以明文的形式配置,是十分不明智的,所以,我们需要对我们的敏感信息进行加密。

集成jasypt

Spring Boot集成jasypt 十分方便,只需要引入jasypt-spring-boot-starter即可。

<dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>2.1.0</version>
 </dependency>

配置秘钥

jasypt.encryptor.password: xxdyu7DR.x,这个秘钥根据自己的实际情况定义。

通过如下代码获取加密后的配置信息:

@Test
    public void getPassword() {
        BasicTextEncryptor encryptor = new BasicTextEncryptor();
        encryptor.setPassword("xxdyu7DR.x"); //秘钥,与配置中的秘钥一致
        System.out.println(encryptor.encrypt("123456")); // 明文密码加密
    }

关于Spring Boot yml 配置中的单引号('')和双引号("")之间的区别单引号。单引号:不会转义特殊字符,特殊字符最终只是作为一个普通的字符串数据;双引号:会转义字符串里面的特殊字符,如\n被转义为换行.

比如在application.yml里配置的数据库密码,密钥等敏感信息,通常会被暴漏出来,我们使用这种方式来对信息进行加密脱敏,就可以避免这种情况的发生。

关于评论

评论前请填好“昵称”、“邮箱”这两栏内容,否则不会收到回复,谢谢!