2012-03-22 71 views
5

在我当前的grails应用程序中,我在resources.groovy中定义了spring bean。现在我也有一个已经定义了一堆bean的xml文件,我想按原样使用它们,而不是重新创建bean dsl中的每个bean。是否可以将外部bean配置xml文件导入到resources.groovy中?

这可能吗?在grails bean dsl中是否有等价的xml import标签? 我想过在applicationContext.xml中添加import ...但我不确定这是否正确。

由于提前,

菲利普

回答

11

可以使用

beans = { 
    importBeans('classpath:/applicationContext-services.xml') 
} 
+0

我无法得到这个工作...我必须在现有的豆关闭内或之后做到这一点? – Philippe 2012-03-22 17:53:13

+0

我已经更新了我的答案 – 2012-03-22 19:55:57

+0

仍然无法使它与那个一起工作......我的xml文件中的所有bean都无法加载。 – Philippe 2012-03-23 14:00:20

2

您可以将其重命名为resources.xml,并把它放在同一个文件夹。 xml版本仍然受支持,但不会像Groovy版本那样自动创建。

+0

谢谢。我知道我仍然可以这样做,但我认为我无法使resources.groovy和resources.xml共存。它似乎有可能... – Philippe 2012-03-22 17:51:14

1

为了得到这个对Grails的1.3.7工作,我其实不得不做这样的事情进口豆在一个XML文件到resources.groovy;

beans { 

    switch(Environment.current) { 

     case Environment.DEVELOPMENT: 
     importBeans('file:grails-app/conf/spring/messaging.xml') 
     break 
     default: 
     importBeans 'classpath*:WEB-INF/spring/messaging.xml' 
     break 
    } 

} 

为了在应用程序服务器中运行时拾取它,我需要*类路径。在开发过程中无法正常工作,因此不同的访问器对它有所不同

有关匹配语法的文档,请参阅http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/core/io/support/PathMatchingResourcePatternResolver.html

相关问题