我可以使用我的Servlet访问Spring bean
WebApplicationContext springContext =
WebApplicationContextUtils.getWebApplicationContext(getServletContext());
Run Code Online (Sandbox Code Playgroud)
在Servlet的init方法中.
我想知道是否有相当于WebApplicationContextservlet过滤器?另外,是否可以在标记类中访问Spring bean?
我正在尝试对servlet过滤器执行spring注入.过滤器是引用的jar文件的一部分.所以.我不能把它改成拦截器.在我的插件项目的web.xml中
<filter>
<filter-name>CustomFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>someinitparam</param-name>
<param-value>value to it</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CustomFilter</filter-name>
<url-pattern>/mywebservices/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
在spring.xml中我将使用这样的
<bean id="CustomFilter" class="com.abc.CustomFilter"></bean>
Run Code Online (Sandbox Code Playgroud)
在spring.xml中已经配置了一些过滤器
<bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/mywebservices/*=some existing filters
</value>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
由于我已经在web.xml中指定了我的url模式,我需要在filterChainProxy中再次添加
/mywebservices/**=CustomFilter, some existing filters
Run Code Online (Sandbox Code Playgroud)
它会起作用吗
请建议.
我有一个spring-boot申请.
我的项目中没有ApplicationContext.xml或没有web.xml文件.我更喜欢避免使用它们并在Java代码中配置所有内容.
我已经阅读了以下有关servlet过滤器中bean注入的帖子.
读完之后,我开始使用了DelegatingFilterProxy.
我的问题是如何autowire将bean转换为过滤器并避免使用xml文件,尤其是DelegatingFilterProxy配置.
public class AuditHandler {
public void auditRequest(String appName, ServletRequest request) {
System.out.println(appName + ": Received request from " + request.getRemoteAddr() );
}
}
public class AuditFilter implements Filter {
private final AuditHandler auditHandler;
private String appName;
public AuditFilter(AuditHandler auditHandler) {
this.auditHandler = auditHandler;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException …Run Code Online (Sandbox Code Playgroud) spring dependency-injection spring-mvc autowired spring-boot