0.背景
下午在学习一下jasypt对配置文件进行加密,然后在配置文件里配置了jasypt.encryptor.password
的值,然后以此为基准进行试验,结果一直各种报错,自动解密错误。
最后发现之前在系统环境变量里面设置了jasypt.encryptor.password
的系统环境变量且二者的值不一样,最后运行的时候一直是以系统环境变量为准的。
1.实验论证ation.properties` 包含如下属性:
my.property=value
然后,您使用@Value
注解来注入该属性值:
@Value("${my.property}")
private String property;
如果设置了名为 my.property
的系统环境变量,并赋予其一个值,那么该值将优先用于注入,而不是配置文件中的值:
export my.property=new-value
在这种情况下,property
将被注入为 "new-value"
而不是配置文件中的值 "value"
。
因此在Spring Boot中,使用@Value
注解自动注入属性时,默认情况下系统环境变量会影响注入的值。当存在与@Value
注解中指定的属性相匹配的系统环境变量时,它们将覆盖配置文件中的属性值。
注意:配置系统环境变量需要重启才能生效!!
评论 (0)