我喜欢使用javassist更改Web应用程序中的第三方类。当org.springframework.web.context.ContextLoaderListener
调用spring Web应用程序上下文初始化时,将加载该类。我尝试了一个自定义BeanFactoryPostProcessor
,但似乎太晚了:
javassist.CannotCompileException: by java.lang.LinkageError: loader ... duplicate class definition for name: "SomeClass"
我想可以通过在初始化bean之前用自定义更改类来替换ContextLoaderListener
来完成。如果可能的话,我宁愿不接触web.xml。
因此,我的问题是是否有一种方法可以注册在任何bean定义类加载之前执行的回调。
答案 0 :(得分:0)
您可以尝试在PriorityOrdered
上实现BeanFactoryPostProcessor
,以获得与其他bean之前调用的PropertyPlaceholderConfigurer
类似的效果(以便它可以加载并使其可用,属性为可以在bean定义中使用。
查看要重用的模式的PropertyPlaceholderConfigurer
。