SpringBoot 2迁移至3后@WebServiceRef未被调用,如何实现原功能?
SpringBoot 3迁移问题:@WebServiceRef标注的Setter方法未被调用
将代码从SpringBoot 2迁移到SpringBoot 3后,原正常运行的代码出现问题:MyDAO类中被@WebServiceRef标注的setRef方法从未被调用。
原相关代码
配置类代码
@Configuration public class MyBeansProducer { @Bean public MyDAO createDAO() { return new MyDAO(); } }
MyDAO类代码
public class MyDAO { @WebServiceRef(WSMyInterfaceHttpService.class) public void setRef(Ref wsRef ) { this.wsRef = wsRef ; } }
此前在Spring 5.3.x版本中,CommonAnnotationBeanPostProcessor类中的相关逻辑负责处理@WebServiceRef标注的方法注入,但迁移到SpringBoot 3后该逻辑不再生效。
问题:该功能是否已不再被支持?如何在SpringBoot 3中实现相同的WebService引用注入功能?
临时解决方案
目前采用手动初始化并注入的方式实现:
@Bean public MyDAO createDAO() { WSMyInterfaceHttpService httpService = new WSMyInterfaceHttpService(); MyInterface wsRef = httpService.getWSMyInterfaceHttpPort(); MyDAO it = new MyDAO(); it.setWsRef(wsRef); return it; }
补充说明:Spring Framework仓库中有编号为31524的相关Issue讨论该问题。
内容的提问来源于stack exchange,提问作者Tomas Bjerre
相关产品推荐
相关产品推荐

