【问题标题】:Spring filter as Java annotation based beanSpring过滤器作为基于Java注解的bean
【发布时间】:2018-02-17 04:06:21
【问题描述】:

我有一个下面提供的XML 格式的 Spring 过滤器,

    <filter>
    <filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
    <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我将它作为XML 文件加载到类的顶部。是否可以编写 Java 而不是 XML 定义?

【问题讨论】:

  • 过滤器由 servlet 容器处理,而不是由 spring 容器处理。不确定“是否可以用它编写基于 Java 注释的 bean?”的含义
  • 我可以用 Java 代替 XML 定义吗?知道怎么做会有很大帮助

标签: java spring spring-mvc spring-security spring-data-jpa


【解决方案1】:

如果是 Spring,您应该定义一个扩展 AbstractDispatcherServletInitializer 的类并添加以下行

@Override
protected Filter[] getServletFilters() {
    return new Filter[] {
        new OpenEntityManagerInViewFilter();
    };
}

您可以从 Spring Docs 获取有关 Java 代码中过滤器的更多信息 https://docs.spring.io/spring/docs/4.1.1.RELEASE/spring-framework-reference/html/mvc.html#mvc-container-config

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2017-12-11
    • 2011-04-20
    • 2016-04-27
    • 2017-01-11
    相关资源
    最近更新 更多