【问题标题】:onStartup method of WebApplicationInitializer never gets calledWebApplicationInitializer 的 onStartup 方法永远不会被调用
【发布时间】:2018-03-01 23:19:20
【问题描述】:

我有一个 Grails 应用程序。我正在尝试使用WebApplicationInitializeronStartup 方法设置一个活动的Spring 配置文件。 我已经用@Configuration 注释了这个Java 类,但是onStartup 方法永远不会被调用。

package my.package;

@Configuration
public class MyWebApplicationInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        servletContext.setInitParameter("spring.profiles.active", "test");
    }
}

Config.groovy我已经添加了,

grails.spring.bean.packages = ['my.package']

我也尝试在 resources.groovy 中添加以下代码

xmlns context: "http://www.springframework.org/schema/context"
context."component-scan" "base-package": "my.package"

但无论我尝试更改什么代码,onStartup 方法都不会被调用。

【问题讨论】:

    标签: spring grails


    【解决方案1】:

    在我的例子中,我使用了application.yml,它在dev 环境中工作,但在使用prod 配置文件将其打包成战争后,由于某种原因,它停止获取我用@Configuration 注释的java 配置。

    解决方案是按照另一个question 中的建议修改Application.groovy

    @ComponentScan("my.package")
    class Application extends GrailsAutoConfiguration {
    ...
    }
    

    注意:在文档中推荐的 Application.groovy 中覆盖 packageNames() 也不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多