cdu*_*gan 3 spring jersey servlet-filters
我有一个实现ContainerRequestFilter的类,我想向它注入一些spring依赖项,所以我需要让Spring知道Jersey过滤器.过滤器本身在我的web.xml中配置了Jersey servlet
<servlet>
<servlet-name>Jersey Spring Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.MyFilter</param-value>
</init-param>
</servlet>
Run Code Online (Sandbox Code Playgroud)
然后,过滤器类尝试注入Manager bean.为了让Spring知道Filter bean,我在applicationContext.xml中定义了bean并将其包含在内.
@Component
public class MyFilter implements ContainerRequestFilter {
@Autowired
private Manager manager;
Run Code Online (Sandbox Code Playgroud)
我试图通过强制Spring使用代理生成的类来使过滤器bean可见但是这不起作用
<mvc:annotation-driven />
<aop:aspect-autoproxy />
<bean id="filter" class="com.MyFilter">
<property name="manager" ref="Manager" />
</bean>
Run Code Online (Sandbox Code Playgroud)
关于如何编辑现有代码以允许过滤器看到spring bean的任何建议?
由于您使用的是Jersey的Spring Servlet,因此可以使用注释@InjectParam将spring依赖项注入到过滤器中
//@Component -> This is not required.
public class MyFilter implements ContainerRequestFilter {
@InjectParam
private Manager manager;
Run Code Online (Sandbox Code Playgroud)
我觉得这是一起使用Jersey和Spring的惯用方式.
| 归档时间: |
|
| 查看次数: |
4630 次 |
| 最近记录: |