0

スプリングビーンを手動で引くにはどうすればよいですか?私はかなり大きなWebアプリケーションを持っていますが、特定のサービスでは、一時オブジェクトはマシン固有のBean(データベース接続情報)にアクセスする必要があります。アプリケーションはクラスターで実行されるため、この一時オブジェクト(サーバー間でバウンスする可能性があります)常に現在のSpringコンテキストとサーバーからの正しい接続を取得する必要があります。

では、手動で豆を春から引き出すための最良の方法は何ですか?

4

4 に答える 4

2
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());

Object o = ctx.getBean("dataSource");

もちろん、次のようにBeanをキャストできます。

DataSource d = (DataSource) ctx.getBean("dataSource");
于 2009-08-11T21:47:58.983 に答える
1

ServiceにApplicationContextAwareを実装して、ApplicationContext自体にアクセスし、getBean()を直接呼び出すことができるようにすることができます。

于 2009-08-11T21:45:41.903 に答える
1

「作成時に」ドメインオブジェクトにプルしようとしているオブジェクトを挿入することをお勧めします。つまり、ドメインオブジェクトが特定のサーバーで作成されると、正しい(マシン固有の)Beanが注入されます。

于 2009-08-12T00:18:47.153 に答える
0

データベース接続情報を取得する必要がありますか?接続をJNDIに格納し、Beanで検索するのはどうですか?サーバーがそれを提供すると仮定します。

于 2009-08-12T00:33:50.253 に答える