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,不然就会报上面的错误。如下图所示,两个版本有对应的关系。
如果你也遇到了这样的问题,可以采用上面的方式来验证一下是否可用。
如果有任何问题欢迎提问,一起交流研讨。
转载请注明出处