在不重新启动Tomcat的情况下更新Grails应用程序中的Spring bean

时间:2016-09-06 15:11:42

标签: spring grails

我们有一个带有外部applicationConfig.groovy的Grails 2.0应用程序和一个控制器上的操作,我们可以使用它来读取配置并更新应用程序的config.groovy设置而无需重新启动应用程序。 我们使用grailsApplication.config.merge(new ConfigSlurper(Environment.current.name).parse(new File(configFilename).text))来完成此任务。

我们希望能够以相同的方式更新resources.groovy中的spring bean。我们可以在应用程序的spring目录中创建resources.xml,它将是服务器上的纯文本。我们可以修改服务器上的文件,但不会自动读入,需要重启Tomcat。我们还担心使用应用程序的人可以在浏览器中查看我们的bean文本。

我们已将applicationResources.groovy文件放在与applicationConfig.groovy相同的外部目录中,并使用importBeans('file:/pathToConfig/applicationResources.groovy')在resources.groovy中访问它,我们已经验证了它在应用程序启动时的作用。我们无法找到是否有办法让应用程序读取applicationResources.groovy文件的更改而不重新启动Tomcat,是否有人有任何建议?

你可以将Spring bean放在config.groovy中,但我们在resource.groovy中工作正常的bean在config.groovy中不起作用。

beans {
    DirContextValidator(org.springframework.ldap.pool.validation.DefaultDirContextValidator){}
}

导致错误ERROR context.GrailsContextLoader - Error executing bootstraps: Entry in bean config for bean 'DirContextValidator' must be a Map

0 个答案:

没有答案