关于org.springframework.boot.context.properties.bind.PlaceholdersResolver的解决

Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.bind.PlaceholdersResolver

在使用jasypt对springboot项目中的配置文件进行加密的时候,由于springboot的版本号和jasypt版本号冲突会导致上面的问题

因为jasypt实现了spring源码中的 ApplicationContextInitializer 接口,重写了获取环境变量的方法,在容器初始化时对配置文件中的属性进行判断,若包含前后缀(ENC())表示是加密属性值,则进行解密并返回。所以我们可以直接通过一个springboot的starter来使用这个组件。

正式由于实现了spring的接口,所以需要注意二者之间的版本问题,如果springboot使用的版本是1.X的,那么引入的jasypt的版本就不能超过2.0,不然就会报上面的错误。如下图所示,两个版本有对应的关系。

 

如果你也遇到了这样的问题,可以采用上面的方式来验证一下是否可用。

如果有任何问题欢迎提问,一起交流研讨。

转载请注明出处

猜你喜欢

转载自blog.csdn.net/qq_39915083/article/details/106812069