はい、Java EE での依存関係注入の CDJ アノテーションには次のものが含まれます: @Inject: 依存関係を注入します。 @Produces: 依存関係を生成するメソッドを宣言します。 @Disposes: 依存関係が解放されたときに呼び出されるメソッドを宣言します。 @Dependent: Bean のスコープをリクエスト スコープとして指定します。 @ApplicationScoped: Bean のスコープがアプリケーション スコープであることを指定します。
Java EE における依存性注入の CDJ アノテーション
Java Enterprise Edition (Java EE) では、依存性注入 (DI) はアプリケーション開発を簡素化する手法です。 DI を使用すると、依存関係を手動で作成および管理する代わりに、アノテーションを通じて依存関係を宣言できます。これらの注釈は、コンテナ (GlassFish サーバーなど) によって自動的に解析され、挿入されます。
CDI アノテーション
Java EE では、Context and dependency Injection (CDI) 仕様により、DI 用のアノテーションのセットが提供されます。これらのアノテーションには以下が含まれます:
@Inject
: 依存関係を注入するために使用されます。 @Inject
:用于注入一个依赖项。@Produces
:用于声明一个方法产生一个依赖项。@Disposes
:用于声明一个方法在依赖项不再需要时被调用。@Dependent
:用于指定一个 bean 的作用域是请求范围。@ApplicationScoped
:用于指定一个 bean 的作用域是应用程序范围。实战案例
假设我们有一个 UserService
类,它依赖于 UserRepository
接口。使用 CDI,我们可以通过以下方式声明依赖关系:
import javax.inject.Inject; public class UserService { @Inject private UserRepository userRepository; // ... }
在上面的代码中,@Inject
注解表明 userRepository
字段应该由容器自动注入。
import javax.enterprise.inject.Produces; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; public class UserRepositoryProducer { @PersistenceContext private EntityManager em; @Produces private UserRepository createUserRepository() { return new UserJpaRepository(em); } }
在这个示例中,@Produces
注解用于声明 createUserRepository
方法负责产生 UserRepository
的实现,而 @PersistenceContext
注解用于将 EntityManager
@Produces
: 依存関係を生成するメソッドを宣言するために使用されます。
@Disposes
: 依存関係が不要になったときに呼び出されるメソッドを宣言するために使用されます。 @Dependent
: Bean のスコープがリクエスト スコープであることを指定するために使用されます。 @ApplicationScoped
: Bean のスコープがアプリケーション スコープであることを指定するために使用されます。
UserRepository
インターフェースに依存する UserService
クラスがあるとします。 CDI を使用すると、次の方法で依存関係を宣言できます: 🎜rrreee🎜 上記のコードでは、@Inject
アノテーションは、userRepository
フィールドがコンテナによって自動的に挿入される必要があることを示しています。 。 🎜rrreee🎜 この例では、@Produces
アノテーションを使用して、createUserRepository
メソッドが UserRepository
の実装の生成を担当することを宣言します。 @PersistenceContext アノテーションは、<code>EntityManager
をメソッドに挿入するために使用されます。 🎜🎜🎜結論🎜🎜🎜 CDI アノテーションは、依存関係注入を実装するためのシンプルかつ効率的な方法を提供します。これらのアノテーションを使用すると、定型コードを削減し、アプリケーションをよりモジュール化して保守しやすくすることができます。 🎜以上がJava EE の CDI アノテーションは依存関係の注入にどのように使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。