私はSpringベースのWebアプリケーションを持っていますが、バックグラウンドプロセスもあります。バックグラウンドプロセスの内側から、私は春の豆にアクセスできるようにしたいと思います。私は通常使用して春の豆を取り出す:サーブレット/ WebアプリケーションコンテキストなしのSpring Beanへのアクセス
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
Object mySpringBean = context.getBean("mySpringBean");
問題は、私のバックグラウンド・プロセスがベースのサーブレットされていないとServletContextへのアクセスを持っていないということです。バックグラウンドプロセスは、独自のタスク実行プログラムによって起動されます。このタスク実行プログラムはClass.forNameを使用してバックグラウンドプロセスをインスタンス化し、タスク実行プログラムを変更することはできません。
バックグラウンドプロセスで春の豆にアクセスすることは可能ですか?もしそうなら、どうですか?
これにより、XMLファイル内のすべてのBeanの追加インスタンスがSpringにインスタンス化されますか?または、webappによって作成されたSpringコンテキストにアクセスしますか?あるいは、バックグラウンドプロセスで必要とされるBeanだけを列挙した別のXMLファイルを作成することもできます。それは良いでしょうか? – David
ダビデ、後者はより良いでしょう。これは時間の経過と共に豆が変わるので、別個のコンテキストファイルのメンテナンスが増えることを意味しますが、価値があります。 – schtever
これは、Webアプリケーションによって作成されたリンクとのリンクなしで、新しいSpringコンテキストを作成します。 –