Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
@Service
public class BeanTest {
@Bean
public BeanTest getBean(){
BeanTest bean = new BeanTest();
System.out.println("调用方法:"+bean);
return bean;
}
}
public class Main {
@SuppressWarnings("unused")
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml");
Object bean1 = context.getBean("getBean");
System.out.println(bean1);
Object bean2 = context.getBean("getBean");
System.out.println(bean2);
}
}
输出:
调用方法:Spring.BeanTest@5a4041cc
Spring.BeanTest@5a4041cc
Spring.BeanTest@5a4041cc
默认bean的名称就是其方法名。但是也可以指定名称:
@Service
public class BeanTest {
@Bean(name="BeanTest")
public BeanTest getBean(){
BeanTest bean = new BeanTest();
System.out.println("调用方法:"+bean);
return bean;
}
}
public class Main {
@SuppressWarnings("unused")
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml");
Object bean1 = context.getBean("BeanTest");
System.out.println(bean1);
Object bean2 = context.getBean("BeanTest");
System.out.println(bean2);
}
}
使用@Bean注解的好处就是能够动态获取一个Bean对象,能够根据环境不同得到不同的Bean对象。
作者:有效栈
链接:http://www.jianshu.com/p/2f904bebb9d0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文介绍了Spring框架中@Bean注解的基本用法及其优势。通过示例代码详细展示了如何使用@Bean来定义Bean对象,并将其交给Spring容器进行管理,同时解释了如何通过@Bean注解为Bean指定名称。
788

被折叠的 条评论
为什么被折叠?



