【发布时间】:2020-07-02 17:07:15
【问题描述】:
春天魔法新手,希望春天魔法能解决我的困境。
我的 groovy/spring 应用程序使用 jar 来处理登录。我想覆盖 jar 中的一个方法,以便在登录过程中(登录后)进行一些自定义处理。
jar 中的类如下所示:
@Component
class Processor extends GenericProcessor {
@Override
ProcessedRequest handle(Request request) {
// do things
return processRequest(request)
}
//Do nothing method method I want to override
ProcessedRequest processRequest(request) {
return request
}
}
在我的应用程序中,我有扩展 jar 类的子类:
class MyProcessor extends Processor {
@Override
ProcessedRequest processRequest(request) {
//do custom processing
return request
}
}
我尝试将MyProcessor 设为@Component,但Processor 类只是调用它自己的processRequest 方法而不是myProcessor 中的processRequest 方法。
我可以用 Spring 做些什么,通过@Component/@Bean/@Qualifier 的某种组合说“只要存在myProcessor,就使用它而不是Processor”?
其他说明:
jar中的处理器是在jar中调用的,所以用myProcessor替换调用位置并不容易
我确实有权更改 jar 源代码,但我宁愿不这样做,因为它是一个共享 jar。
【问题讨论】:
标签: spring spring-boot groovy annotations spring-annotations