我的自定义非常简单,我在可部署的 war 文件中打包了一些属性文件,我希望在我的 web 服务器机器上有一个本地属性文件,以在重叠的情况下覆盖这些属性。为此,我实现了 ApplicationContextInitializer 接口,加载了我的本地属性文件并使用了我的环境的 addFirst 方法。这确保了我的本地文件覆盖了我的战争中打包的属性文件。
这非常有效。现在我想在 java-spring 进程(不是网络应用程序)中做同样的事情,我该怎么做?
到目前为止,我发现的最佳解决方案是在我的配置类中添加一个方法并使用@PostConstruct注释对其进行注释。这个方法和 ApplicationContextInitializer 的初始化方法完全一样。
这个解决方案不能满足我的需求,因为我有一些有条件地加载的 bean,并且这(条件注释代码)发生在我的 @postConstruct 方法之前(这不好,因为条件加载基于我的属性)。