0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Spring FrameWorkのJava Config

Posted at

DIコンテナに、Java Configクラスを使用してコンポーネントを登録する方法を書いてみました!

Java Configクラス

DIコンテナに対してコンポーネントを登録するための、設定クラス。ここで設定したコンポーネントが、DIコンテナに登録される。

@Configuration
public class AppConfig {

  @Bean
  UserRepository userRepository() {
    return new UserRepositoryImpl();
  }
}

ルックアップ

ルックアップとはDIコンテナからBeanを取得すること。

取得方法
1つ目はBeanの型(UserRepository)を指定する方法。指定した型を持つBeanが1つだけ存在する場合に使用する。今回は、Java Configクラスで設定したUserRepository型は1つだけなので、これで取得できる。

UserRepository userRepository = context.getBean(UserRepository.class);

2つ目はBeanの型と名前を指定する方法。指定した型が複数ある場合に使用する。
下記のようにUserRepository型が複数あった場合、型を指定するだけではどちらか判断できない。

@Configuration
public class AppConfig {

  @Bean
  UserRepository userRepository() {
    return new UserRepositoryImpl();
  }

  @Bean
  UserRepository userRepositorySecond() {
    return new UserRepositorySecondImpl();
  }
}

なので名前と型を指定する。

UserRepository userRepository = context.getBean("userRepositorySecond",UserRepository.class);

もう一つObject型で取得してキャストする方法があるみたいですが、省略します。

終わり

DIコンテナにコンポーネントを登録して取得する方法でした!
間違いなどがあれば、遠慮なくご指摘ください:grin:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?