Springの@Beanアノテーション
Springの@Beanアノテーションは、Springのコンテキストで管理されるBeanを返すことを指定するために、メソッドに適用されます。Spring Beanアノテーションは通常、設定クラスのメソッドで宣言されます。この場合、Beanのメソッドは、直接呼び出すことで同じクラス内の他の@Beanメソッドを参照することができます。
スプリングの@Beanの例
以下に示すような簡単なクラスを考えてみましょう。
package com.scdev.spring;
public class MyDAOBean {
@Override
public String toString() {
return "MyDAOBean"+this.hashCode();
}
}
ここには、MyDAOBeanクラスのための@Beanメソッドを定義したConfigurationクラスがあります。
package com.scdev.spring;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyAppConfiguration {
@Bean
public MyDAOBean getMyDAOBean() {
return new MyDAOBean();
}
}
以下のコードスニペットを使って、SpringコンテキストからMyDAOBeanのビーンを取得することができます。
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.scan("com.scdev.spring");
context.refresh();
//Getting Bean by Class
MyDAOBean myDAOBean = context.getBean(MyDAOBean.class);
スプリングビーンの名前
@Beanアノテーションは、Springコンテキストから@Beanの名前を指定して取得することができます。例えば、MyFileSystemBeanクラスが定義されているとしましょう。
package com.scdev.spring;
public class MyFileSystemBean {
@Override
public String toString() {
return "MyFileSystemBean"+this.hashCode();
}
public void init() {
System.out.println("init method called");
}
public void destroy() {
System.out.println("destroy method called");
}
}
設定クラスで@Beanメソッドを定義してください。
@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"})
public MyFileSystemBean getMyFileSystemBean() {
return new MyFileSystemBean();
}
私たちは、この豆をコンテキストから取得することができます。豆の名前を使用することで。
MyFileSystemBean myFileSystemBean = (MyFileSystemBean) context.getBean("getMyFileSystemBean");
MyFileSystemBean myFileSystemBean1 = (MyFileSystemBean) context.getBean("MyFileSystemBean");
初春の@BeanのinitMethodとdestroyMethod
私たちは、Springビーンの初期化メソッドと破棄メソッドを指定することもできます。これらのメソッドは、Springビーンが作成されるときに呼び出され、コンテキストが閉じられるときに呼び出されます。
@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"}, initMethod="init", destroyMethod="destroy")
public MyFileSystemBean getMyFileSystemBean() {
return new MyFileSystemBean();
}
コンテキストのリフレッシュメソッドを呼び出すときには、「init」メソッドが呼び出されることに気づくでしょう。また、コンテキストのクローズメソッドを呼び出すときには、「destroy」メソッドが呼び出されます。
要約:まとめ
Springの`@Bean`アノテーションは、アノテーション駆動のSpringアプリケーションで広く使用されています。
弊社のGitHubリポジトリから、完全なSpringプロジェクトをダウンロードできます。