Springからref Beanのメソッド呼び出しの結果を注入することは可能ですか?
2023-09-04 16:41:30
質問
SpringからRef Beanのメソッド呼び出しの結果をインジェクトすることは可能でしょうか?
私は、2つの別々のプロジェクトから共通のクラスにカット/ペーストされたコードをリファクタリングしようとしています。プロジェクトの1つでは、コードは"MyClient"と呼ぶクラス内にあり、それはSpringからインスタンス化されています。このクラスはSpringからインスタンス化された別のクラスである "MyRegistry" にインジェクトされ、MyClientクラスはそのクラスを使ってエンドポイントを探します。私が本当に必要とするのは、リファクタリングされたクラスのエンドポイント文字列だけで、これはセッターを介して初期化することができます。私は本当にリファクタリングされたコードでMyClientからMyRegistryへの依存を持つことはできません。
そこで、私の質問はこれです... MyRegistryクラスで検索された春からのエンドポイント文字列を注入する方法はありますか。だから、私は現在持っています。
<bean id="registryService" class="foo.MyRegistry">
...properties set etc...
</bean>
<bean id="MyClient" class="foo.MyClient">
<property name="registry" ref="registryService"/>
</bean>
しかし、私は(これは想像上のSpringの構文ですが)
<bean id="MyClient" class="foo.MyClient">
<property name="endPoint" value="registryService.getEndPoint('bar')"/>
</bean>
ここで、MyRegistry は getEndPoint(Stirng endPointName) メソッドを持つことになります。
私が達成しようとしていることの観点から、これが意味をなすことを願っています。このようなことがSpringで可能かどうか教えてください!
どのように解決するのですか?
一番素敵な解決方法は、@ChssPly76さんが紹介しているSpring 3の式言語を使うことですが、もし古いバージョンのSpringを使っているのであれば、ほとんど同じように簡単にできます。
<bean id="MyClient" class="foo.MyClient">
<property name="endPoint">
<bean factory-bean="registryService" factory-method="getEndPoint">
<constructor-arg value="bar"/>
</bean>
</property>
</bean>
関連
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
maven レポート エラー 解決不可能な親POM
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?
-
[解決済み】ユニットテスト中のSpring @Valueの入力について
-
[解決済み] [Solved] アノテーションを使用して構成されたSpring Beanにプロパティ値を注入するにはどうすればよいですか?
-
[解決済み】SpringでList Beanを定義する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
Jsoup-Crawlingの動作
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
-bash: java: コマンドが見つからない 解決方法
-
java.sql.SQLException: 結果セットの開始前
-
FindBugの使用概要
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ