Spring+CXF 实现类无法注入属性的问题

来源:互联网 发布:数据标准方案 编辑:程序博客网 时间:2024/06/07 15:33
spring bean的配置文件  bean.xml   [引自:http://isky.iteye.com/blog/162053] 


<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:jaxws="http://cxf.apache.org/jaxws" 
xsi:schemaLocation=" 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

<import resource="classpath:META-INF/cxf/cxf.xml" /> 
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  
<bean id="hello" class="demo.spring.HelloWorldImpl" />  
<jaxws:endpoint id="helloWorld" implementor="#hello" address="/HelloWorld" />  
<!-- 另一种写法 是 
<jaxws:endpoint    id="helloWorld"   implementor="demo.spring.HelloWorldImpl"     address="/HelloWorld" /> 
在这里我建议不要用这种方法 ,如果实现类有的属性要通过spring依赖注入的话,这种方法只是简单的new个实现类,他的属性没有通过spring依赖注入给注入值 
所有综合考虑   建议使用上面的写法! 
--> 

</beans> 
2012.07.03补充: 

上面第一种方法可以注入实现类的属性,但是生成的wsdl中每个接口的参数不见了,因为wsdl中多了个import属性,import进来的文件(复制文件地址在浏览器打开)详细说明了每个接口的参数类型及名称。若添加implementorClass属性来指定实现接口,则可以直接看到这些接口参数信息,格式如下: 

view sourceprint? 
<jaxws:endpoint    id="helloWorld"   implementorClass="demo.spring.HelloWorld"  implementor="#hello"  address="/HelloWorld" />
0 0