Spring @Bean 注释应用于一个方法,以指定它返回一个豆子以由 Spring 语境管理。 Spring Bean 注释通常在配置类方法中声明。
春天 比尔 例子
假设我们有一个简单的类,如下。
1package com.journaldev.spring;
2
3public class MyDAOBean {
4
5 @Override
6 public String toString() {
7 return "MyDAOBean"+this.hashCode();
8 }
9}
以下是配置类,我们为MyDAOBean
类定义了 @Bean 方法。
1package com.journaldev.spring;
2
3import org.springframework.context.annotation.Bean;
4import org.springframework.context.annotation.Configuration;
5
6@Configuration
7public class MyAppConfiguration {
8
9 @Bean
10 public MyDAOBean getMyDAOBean() {
11 return new MyDAOBean();
12 }
13}
我们可以从使用下面的代码片段的春节背景中获取MyDAOBean
豆子。
1AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
2context.scan("com.journaldev.spring");
3context.refresh();
4
5//Getting Bean by Class
6MyDAOBean myDAOBean = context.getBean(MyDAOBean.class);
春天的名字
我们可以指定 @Bean 名称,并使用它来从春天背景中获取它们,假设我们有MyFileSystemBean
类定义为:
1package com.journaldev.spring;
2
3public class MyFileSystemBean {
4
5 @Override
6 public String toString() {
7 return "MyFileSystemBean"+this.hashCode();
8 }
9
10 public void init() {
11 System.out.println("init method called");
12 }
13
14 public void destroy() {
15 System.out.println("destroy method called");
16 }
17}
现在,在配置类中定义 @Bean 方法:
1@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"})
2public MyFileSystemBean getMyFileSystemBean() {
3 return new MyFileSystemBean();
4}
我们可以通过使用豆名来从文本中获取这个豆子。
1MyFileSystemBean myFileSystemBean = (MyFileSystemBean) context.getBean("getMyFileSystemBean");
2
3MyFileSystemBean myFileSystemBean1 = (MyFileSystemBean) context.getBean("MyFileSystemBean");
Spring @Bean init 方法和破坏方法
我们还可以指定春豆 init 方法和破坏方法,这些方法分别叫做春豆被创建时和背景被关闭时。
1@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"}, initMethod="init", destroyMethod="destroy")
2public MyFileSystemBean getMyFileSystemBean() {
3 return new MyFileSystemBean();
4}
你会注意到,当我们召唤文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本。
摘要
春天 @Bean 注释广泛用于注释驱动的春天应用。
您可以从我们的 GitHub 存储库下载完整的春季项目。