我有一个 web 应用程序,它通过 cxf jax-rs 公开了一个 rest web 服务。在我的应用程序上下文文件中,我有这样的东西:
...
<bean id="service" class="SomeClass">
<constructor-arg index="0">
<ref bean="bean1" />
</constructor-arg>
<constructor-arg index="1"
value="some value" />
</bean>
<jaxrs:server id="restContainer" address="/">
<jaxrs:serviceBeans>
<ref bean="service" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
</jaxrs:providers>
</jaxrs:server>
...
我的服务类中还有一个构造函数,它接受这两个参数并初始化服务。
当我部署我的应用程序时,spring 上下文加载器正在正确地创建服务 bean,并且正在调用正确的构造函数。问题是第一个 Rest 请求何时提供服务。Cxf Jax-rs 正在通过“默认构造函数”创建自己的实例,我将失去这两个属性。
如果我使用属性设置器而不是构造函数参数,也会发生同样的事情。当我研究 cxf jax-rs 时,没有一个示例具有具有某些属性的服务!这是有原因的还是cxf的一些实施限制?
有任何想法吗?