springでのBeanの注入方法は何ですか?
Springでは、3つの一般的なbean注入方法があります:コンストラクター注入、セッター注入、およびフィールド注入。
- コンストラクターインジェクション:@Autowiredや@Injectアノテーションをクラスのコンストラクターに使用することで、依存性注入を実現します。Springコンテナがbeanを作成する際、自動的にコンストラクターパラメーターを確認し、一致する依存関係をコンストラクターにインジェクトします。例:
@Service
public class UserService {
private UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
- setterの注入は、依存性の注入を実現するために、クラスのsetterメソッドに@Autowiredまたは@Injectアノテーションを使用することです。Springコンテナは、beanの作成時に適切なsetterメソッドを自動的に呼び出し、マッチングする依存関係をプロパティに注入します。例:
@Service
public class UserService {
private UserRepository userRepository;
@Autowired
public void setUserRepository(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
- フィールドインジェクション:依存性注入を実現するために、クラスのフィールドに@Autowiredまたは@Injectアノテーションを使用します。Springコンテナは、Beanを作成する際に、自動的に一致する依存関係をフィールドに注入します。例:
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
}
上記の一般的なインジェクション方法に加えて、JSR-330の@InjectアノテーションやSpringの@Qualifierアノテーションを使用して、具体的な依存関係を指定することができます。さらに、Java設定クラスで@Beanアノテーションを使用して、他のビーンに注入することもできます。