在Spring的Filter中使用@Value获取不到properties设置的属性值

application.properties配置如下:

epp.static.http.new.domain=www.heoller.com

Filter类如下:

public class ReplaceIconStaticResourceFilter implements Filter {

    @Value("${epp.static.http.new.domain}")
    private String newStaticDomain;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setAttribute("ctxNew", newStaticDomain);
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {

    }
}

web.xml配置如下:

<filter>
    <filter-name>replaceIconStaticResourceFilter</filter-name>
    <filter-class>com.suning.filter.ReplaceIconStaticResourceFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>replaceIconStaticResourceFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

上面这么一通操作之后, newStaticDomain值为null
解决办法:

<filter>
    <filter-name>replaceIconStaticResourceFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetFilterLifecycle</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>replaceIconStaticResourceFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务