spring - Servlet 和过滤器注册为 Spring Beans 而不是 Grails 中的 web.xml

标签 spring grails

在 chalice 中 'Upgrading from 2.x to 3.0.6' document已经注意到“新的 servlet 和过滤器可以分别注册为 Spring bean 或使用 ServletRegistrationBean 和 FilterRegistrationBean”,但是关于此事并没有多说。

我想知道是否有人对如何正确执行此操作有任何好的意见(即,使用包含 servlet 上下文的 init/BootStrap.groovy 来加载 bean,而不是 conf/spring 中的 bean)或者可能有一些 pre -定义的 Spring 这样做的方式很明显,我错过了。

注意:我正在尝试将 spring-ws 集成到 Grails 3.0.6 中。

最佳答案

对于插件,您应该在 doWithSpring 中执行此操作,对于应用程序,您应该在 grails-app/conf/spring/resources.groovy 中执行此操作。由于 Grails 3 基于 Spring Boot,您还可以使用 @Bean 方法。

当应用程序上下文启动时,Spring 会查找 ServletRegistrationBeans、FilterRegistrationBeans 等,并使用它们配置的属性为您在 servlet 容器中进行编程注册.

Grails 源代码中有一些示例。 ControllersGrailsPlugin 注册了一些过滤器(例如 here )并且主调度器 servlet 注册了 here .

Spring Boot docs 中有一些文档虽然它偏向于 @Bean 方法,但您可以使用任何方法来定义 bean。

关于spring - Servlet 和过滤器注册为 Spring Beans 而不是 Grails 中的 web.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32564857/

相关文章:

java - 使用 Spring Batch 逐行插入数据修复列表大小问题

grails - Grails GSP-无法使用参数调用主体

grails - 我可以将Grails项目外的Grails插件类用作Jar依赖项吗?

grails - 使用远程链接gsp时如何将一个字段的值设置为参数

java - Spring Form - 使用日期和时间作为要分配给 LocalDate 和 LocalTime 变量的输入类型。类型不匹配问题

java - 注解配置-spring配置类位置怎么说

java - IDP 的 Spring SAML 预授权检查

java - Spring Restful服务中如何处理由文件和JSON对象组成的多部分请求?

sql-server - MSSQL服务器连接超时groovy grails应用程序

angularjs - AngularJs 组件内无法访问 Groovy 代码