Java Spring:配置静态字段单例实例
CXF的PolicyBasedWS4JinInterceptor创建了一个单例实例:Java Spring:配置静态字段单例实例,java,spring,cxf,wss4j,Java,Spring,Cxf,Wss4j,CXF的PolicyBasedWS4JinInterceptor创建了一个单例实例: public static final PolicyBasedWSS4JInInterceptor INSTANCE = new PolicyBasedWSS4JInInterceptor(); 由于没有Spring技能,我正在努力通过cxf.xml文件中Spring的bean定义设置acestor(AbstractWSS4JInterceptor)属性映射。基本上,我想在cxf.xml中配置WSS
public static final PolicyBasedWSS4JInInterceptor INSTANCE
= new PolicyBasedWSS4JInInterceptor();
由于没有Spring技能,我正在努力通过cxf.xml文件中Spring的bean定义设置acestor(AbstractWSS4JInterceptor)属性映射。基本上,我想在cxf.xml中配置WSS相关的属性,如“signaturePropFile”
有人可以演示如何设置PolicyBasedWS4JinInterceptor.INSTANCE的属性映射吗?谢谢 我要声明一个单例bean:
<bean id="interceptor" class="whatever.your.package.PolicyBasedWSS4JInInterceptor" scope="singleton"/>
您将得到与声明它为静态相同的结果,用Spring术语表示。这取决于您喜欢哪种方式,请记住,这样做就像Spring方式一样,您将拦截器放在IoC容器中,因此您可以在必要时插入拦截器,等等。基于“操作”的WS-Security属性(如“signaturePropFile”)不适用于CXF中基于WS-SecurityPolicy的拦截器。CXF有单独的配置标记,您可以在使用WS-SecurityPolicy时将其作为JAX-WS属性传递,因此不需要访问实例类的任何属性。有关更多信息,请参见此处:
Colm.bean声明将创建另一个PolicyBasedWS4JinInterceptor实例,对吗?我认为这不起作用,因为WSSecurityInterceptorProvider使用实例将其添加到CXF的拦截器链中,如下所示:
this.getOutiterCeptors().add(PolicyBasedWSS4JOutInterceptor.INSTANCE)代码>该死的抱歉,我没有意识到你的拦截器是一个库的一部分,因此你没有维护代码,我完全不好,非常抱歉。我根本不明白你的问题。
<bean id="anotherBean" ...>
<property name="interceptor" ref="interceptor"/>
</bean>
private PolicyBasedWSS4JInInterceptor interceptor;
public PolicyBasedWSS4JInInterceptor getInterceptor() {
return interceptor;
}
public void setPolicyBasedWSS4JInInterceptor(PolicyBasedWSS4JInInterceptor interceptor) {
this.interceptor = interceptor;
}