2012-03-22 6 views
5

私の現在のgrailsアプリケーションでは、resources.groovyに定義されているspring beanがあります。今では、すでに定義された一連のBeanを含むxmlファイルもあります。Bean DSL内のすべての単一Beanを再作成する代わりに、それらをそのまま使用したいと思います。外部のBean構成XMLファイルをresources.groovyにインポートすることはできますか?

これはまったく可能ですか? grails bean dslに相当するxml importタグがありますか? 私はapplicationContext.xmlにインポートを追加することを考えましたが、それが正しい場所であるかどうかはわかりません。事前に

おかげで、

フィリップ

答えて

11

あなたは、これは私が実際にこのような何かをしなければならなかったのGrails 1.3.7で動作するように取得するには

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

私はこれを働かせることができませんでした...私は既存の豆の閉鎖の内側または後にそれをしなければなりませんか? – Philippe

+0

私は自分の答えを更新しました –

+0

まだそれを動作させることはできません...私のXMLファイル内のBeanは一切ロードされません。 – Philippe

2

あなたはresources.xmlに名前を変更し、同じフォルダにそれを置くことができます。 xmlのバージョンはまだサポートされていますが、Groovyのバージョンと同じように自動的に作成されるわけではありません。

+0

ありがとうございました。私はまだこれを行うことができることを知っていましたが、私はresources.groovyとresources.xmlを共存させることができないと考えました。それは可能性のようです... – Philippe

1

を使用してresources.groovyにXMLファイルに豆をインポートすることができます。

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 
    } 

} 

アプリケーションサーバーで実行しているときにクラスパスを取得するには、* after classpathが必要でした。それで開発では動作しませんが、そのための別のアクセッサ

対応する構文については、http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/core/io/support/PathMatchingResourcePatternResolver.htmlを参照してください。

関連する問題