2011-08-03 8 views
2

したがって、Webアプリケーションでスプリング初期化が失敗すると、Webアプリケーション自体が起動しません。これを防ぐために、特定のBeanの初期化のためにコードから例外を再スローすることはできません.WebAppはロードを続行します。1つのスプリングBeanの初期化が失敗した場合でもwebappをロードし続ける

特定のBeanの初期化に失敗したときにwebapp自体が失敗しないように指示する他の方法はありますか?

+0

なぜこれをやりたいですか?おそらく、あなたのBeanが適切に初期化されることを必要とする/想定しているコードがあります。もしそうなら、なぜサーバーが壊れた状態で起動するのを許可するのですか? – aroth

答えて

7

は1のSpring Beanの初期化は、私の知る限り

を失敗しても、あなたがこれを行うことはできませんWebアプリケーションをロードし続けます。

私は起動時に複数のDNSルックアップを行います。 Webappが失敗した場合、失敗することはありません。その場合

、あなたはそれが、本質的に不活性であるが、無害な状態でBeanインスタンスを残して、DNSルックアップが失敗した場合に対処するために、あなたのBean(複数可)を変更する必要がある、またはそれを再試行することができる場所DNS検索は後で行います。

要するに、あなたはこれに自分自身で対処しなければなりません。

1

なぜあなたはこれを行いますか?あなたの春の文脈が正しくない場合、何かが深刻に間違っており、となります。これに対処する正しい方法は、アプリケーションコンテキストを修正することです。

+0

私は起動時に複数のDNS検索を行います。 DNS検索を行うクラスは、Spring Beanとして定義されています。 Webappが失敗した場合、失敗することはありません。 – Prasanna

2

このBeanとすべての従属Beanに属性lazy-init="true"があります。詳細についてはLinkをご覧ください。

+0

上記のSpring 3.2.xのリンクは、[こちら](http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/beans.html#beans-factory)です。 -lazy-init) – Ujjwal

関連する問題