java - Spring过滤器作为基于Java注释的bean

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

我有一个下面提供的 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 定义?

最佳答案

对于 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

关于java - Spring过滤器作为基于Java注释的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112936/

相关文章:

java - 在spring web mvc中创建并执行.bat文件

java - Spring 数据 neo4j 4 中的急切或延迟加载

java - reCaptcha 在用 Google 验证时总是返回 false

java - 如何自动创建和注入(inject)缺失依赖项的代理?

spring - 使用 maven 和 tomcat 运行 spring mvc-basic 示例

Spring本地化消息持久化

spring - 使用纯Java配置且没有web.xml开发spring mvc应用程序时如何设置欢迎文件?

java - 从输入表单检索数据并发出 get 请求 spring mvc

ant - Hudson ci 在构建时不运行 ant 脚本

java - 无法在 LAN 上的两台 PC 之间创建连接(Windows、RabbitMQ)