4

Spring 提供的org.springframework.ws.client.core.support.WebServiceGatewaySupport类,根据Spring 文档中的一个

需要 Web 服务访问的应用程序类的方便超类。

该类显然是为扩展而设计的。所以它abstract不能被实例化为一个 bean,所以我不能使用组合而不是继承

但是,当我继承该类时,Spring 开始抱怨:

[WARN] org.springframework.framework.CglibAopProxy -无法代理接口实现方法[public final void org.springframework.ws.client.core.support.WebServiceGatewaySupport.afterPropertiesSet() throws java.lang.Exception]因为它被标记as final考虑改用基于接口的 JDK 代理!

各种资源(例如https://github.com/spring-projects/spring-boot/issues/8974)说类似

如果您实际上没有通过代理调用 xxx 方法,则可以安全地忽略该警告

但是我不高兴在应用程序中有任何警告。习惯于忽略警告通常是不好的,而且我们的一些客户坚持“零警告政策”。

我们只需要这个类来获得WebServiceTemplate. 我们以某种方式使用它:

response = getWebServiceTemplate().marshalSendAndReceive(
               uri, request, new SoapActionCallback(soapAction));

问题:

Spring 中是否有另一种方法(实际上,我们使用Spring Boot)来实现相同的结果,而无需过多的配置且没有警告

也许 Spring 有另一个具有相同功能的类,专为组合而设计?还是静态工厂方法?

4

0 回答 0