1

ビジネス Bean を次のように定義しています。

@Local
@Interceptors(BusinessInterceptor.class})
public class MyBean implements SomeBean { ... }

そして、BusinessInterceptorSpring で構成する必要がありますSpringBeanAutowiringInterceptor

@Interceptors(SpringBeanAutowiringInterceptor.class)
public class BusinessInterceptor {
    @Autowired
    private SomeSpringBean someSpringBean;
}

これは許可/合法ですか? BusinessInterceptorフィールドが適切に初期化されていないことを示すエラー (主に NPE)が表示されます。

4

1 に答える 1

1

これがうまくいくとは思えません。あなたのシナリオをよく理解していれば、基本的に 2 つの DI コンテナーがあり、1 つは Spring で、もう 1 つはアプリです。サーバー自体。それぞれが異なる要素を管理します。はBusinessInterceptorアプリによって作成されます。Spring を認識しないサーバー -- @AutowiredBean は設定されません。

(Spring と EJB3 は現在非常に類似していることに注意してください。Spring を使用すると、EJB と同じ機能を使用できます。Spring には、宣言型トランザクション、依存性注入、および EJB3 インターセプターと同様の AOP 機能があります (これらは主なマネージド機能です)。ただし、EJB3 は現在非常に軽量であるため、EJB3 で Spring を使用する説得力のある理由は実際にはありません.エンタープライズ Java の将来: フルスタック Spring またはフルスタック Java EE を参照してください. しかし、これは質問の答えではなく、単に私のちょっとした余談:)

于 2010-03-30T20:03:55.470 に答える