問題タブ [spring-groovy-config]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1278 参照

spring - Groovy Bean Definition DSL で Bean 定義を順序に依存しないようにする

新しいGroovy Bean Definition DSLで現在見られる唯一の欠点は、クロージャー内の Bean を依存関係の順序で宣言する必要があることです。たとえば、これが機能している間:

これはうまくいきません:

これは、クロージャー内のコードが行ごとに実行されたためです。

これは、Spring では慣れていないことです。XML 定義は 1 つの DOM として解析されます。Java 構成では、Bean 定義はメソッドであるため、宣言の順序は重要ではありません。

Java 構成 (Bean ごとのクロージャー/メソッド) を模倣するために、このクロージャーを壊すためにいくつかの努力をしましたが、付属のコードは非常に醜く冗長でした。

この閉鎖を複数の順序に依存しないコード単位にリファクタリングする方法を知っている人はいますか?

PS この定義スタイルは Grails から来たものだと理解しているので、Grails コミュニティはすでに答えを持っているのではないでしょうか?

0 投票する
1 に答える
654 参照

spring - Grails BeanBuilder または Spring GenericGroovyApplicationContext を使用して Bean を「手動で」作成する

複雑な作成ロジックを持つクラスがあります (ビルダーを使用するなど)。2000 年にさかのぼると、XML は厳格でプログラミング言語ではないため、XML の作成ロジックをコーディングできませんでした。そのため、XML を FactoryBean にカプセル化しました。

その後、祝福された JavaConfig がやって来て (@cbeams に感謝)、FactoryBean を歴史のごみ箱に投げ込みました。

GroovyConfig はさらなる前進であるため (構成のための真のプログラミング言語であるだけでなく、DSL を使用することもできます)、複雑な作成ロジックを介して自分のやり方でコーディングするシンプルでエレガントな方法を見つけることができましたが、言及は見つかりませんでした。そうする能力の?!

GroovyConfig は多かれ少なかれ Grails BeanBuilder から逐語的に取られていることを理解しています。そのため、そこでそれを行う方法があれば、GroovyConfig でも機能する可能性があります (指を交差させます)。

明らかな何かが欠けているので、FactoryBean を再度使用する必要がないことを教えてください。

その上で寝て、答えはノーだと思います。私は答えを追加しています(それでも、それが間違ったものとしてひどく反対票を投じられることを望んでいます)。私が間違っていることを証明してください!

0 投票する
1 に答える
275 参照

spring - spring groovyベースの構成ファイルからBeanメソッドを呼び出す方法は?

スプリング構成のgroovyベースのファイルからメソッドを呼び出す方法は? MethodInvokingFactoryBean については知っていますが、もっと簡単な方法が必要です。

私の豆:

私のbeans.groovy:

0 投票する
2 に答える
1295 参照

spring - Grails 2.4.2 Bean Spring Bean インジェクション

ここにあるサンプルアプリ: https://github.com/rushidesai1/Grails2_4_2_BeanIssue

質問:

次のように Bean を宣言すると、resources.groovy で

ここで、testObject Bean を DI するか、'Holders.grailsApplication.mainContext.getBean("testObject")' を実行すると、取得する Bean にはシングルトン 'map' とシングルトン 'testA' オブジェクトが含まれます。

ここで testObject は 'prototype' として宣言されていますが、それでも 'map' と 'testA' の両方がシングルトンです。

これがバグなのか、それとも設計どおりに機能するのかを知りたいです。私たちは特に新しいことをしているので、毎回新しい Bean が注入されることを期待しているので、このように機能することは完全に直観に反しています。

ユニット テスト ケースを使用して、私の質問のより詳細なバージョンを確認してください。

明確にしていただきありがとうございます!!!

0 投票する
1 に答える
75 参照

java - groovyConsole で Spring Framework をインポートするとエラーがスローされる

非常に単純な Groovy スクリプトがあります。

注釈を使用@Controllerするときに、メニュー オプションを使用しました。

スクリプト -> jar をクラスパスにインポート

しかし、コンパイルするとエラーが発生します:

groovyConsole から Spring Framework を使用する正しい方法は何ですか?