【spring学习】bean的三种实例化方法

你的名字 2022-09-01 09:25 240阅读 0赞
  1. 先创建三个类

    public class BeanClass {
    public String message;
    public BeanClass(){

    1. message="构造方法实例化";

    }
    public BeanClass(String s)
    {

    1. message = s;

    }
    }

  1. public class BeanInstanceFactory {
  2. public BeanClass createBeanClassFactory(){
  3. return new BeanClass("实例工厂实例化");
  4. }
  5. }
  6. public class BeanStaticFactory {
  7. public static BeanClass beanClass = new BeanClass("静态工厂实例化bean");
  8. public static BeanClass createInstance(){
  9. return beanClass;
  10. }
  11. }

2.编写config类

  1. public class BeanConfig {
  2. //使用@Bean定义三个bean
  3. @Bean(value= "beanclass")
  4. public BeanClass getBeanClass(){
  5. return new BeanClass();
  6. }
  7. @Bean(value = "beanStaticFactory")
  8. public BeanClass getBeanStaticFactory(){
  9. return BeanStaticFactory.createInstance();
  10. }
  11. @Bean(value = "beanInstanceFactory")
  12. public BeanClass getBeanInstanceFactory(){
  13. BeanInstanceFactory beanInstanceFactory = new BeanInstanceFactory();
  14. return beanInstanceFactory.createBeanClassFactory();
  15. }
  16. }

3.测试:

  1. public class TestBean {
  2. public static void main(String[] args) {
  3. //初始化spring容器ApplicationContext
  4. AnnotationConfigApplicationContext app = new AnnotationConfigApplicationContext(BeanConfig.class);
  5. //对应config中的 @Bean(value= "beanclass")
  6. BeanClass bi = (BeanClass) app.getBean("beanclass");
  7. System.out.println(bi+bi.message);
  8. BeanClass b2 = (BeanClass) app.getBean("beanStaticFactory");
  9. System.out.println(b2+b2.message);
  10. BeanClass b3 = (BeanClass) app.getBean("beanInstanceFactory");
  11. System.out.println(b3+b3.message);
  12. }
  13. }

输出:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,240人围观)

还没有评论,来说两句吧...

相关阅读