zoukankan      html  css  js  c++  java
  • 吴裕雄天生自然SPRINGSpring Bean

    Spring框架实例化Bean有三种方式:构造方法实例化、静态工厂实例化和实例工厂实例化(其中,最常用的实例方法是构造方法实例化)
    
    演示Bean的实例化过程,具体步骤如下。
    
    1.使用Eclipse创建Web应用并导入JAR包
    
    2.创建实例化Bean的类
    
    3.创建配置类
    
    4.创建测试类
    
    5.运行测试类
    package instance;
    
    public class BeanClass {
        public String message;
    
        public BeanClass() {
            message = "构造方法实例化Bean";
        }
    
        public BeanClass(String s) {
            message = s;
        }
    
    }
    package instance;
    
    public class BeanInstanceFactory {
        public BeanClass createBeanClassInstance() {
            return new BeanClass("调用实例工厂方法实例化Bean");
        }
    
    }
    package instance;
    
    public class BeanStaticFactory {
        private static BeanClass beanInstance = new BeanClass("调用静态工厂方法实例化Bean");
    
        public static BeanClass createInstance() {
            return beanInstance;
        }
    
    }
    package config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import instance.BeanClass;
    import instance.BeanInstanceFactory;
    import instance.BeanStaticFactory;
    
    @Configuration
    public class JavaConfig {
        /**
         * 构造方法实例化
         */
        @Bean(value = "beanClass") // value可以省略
        public BeanClass getBeanClass() {
            return new BeanClass();
        }
    
        /**
         * 静态工厂实例化
         */
        @Bean(value = "beanStaticFactory")
        public BeanClass getBeanStaticFactory() {
            return BeanStaticFactory.createInstance();
        }
    
        /**
         * 实例工厂实例化
         */
        @Bean(value = "beanInstanceFactory")
        public BeanClass getBeanInstanceFactory() {
            BeanInstanceFactory bi = new BeanInstanceFactory();
            return bi.createBeanClassInstance();
        }
    
    }
    package config;
    
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    import instance.BeanClass;
    
    public class TestBean {
        public static void main(String[] args) {
            // 初始化Spring容器ApplicationContext
            AnnotationConfigApplicationContext appCon = new AnnotationConfigApplicationContext(JavaConfig.class);
            BeanClass b1 = (BeanClass) appCon.getBean("beanClass");
            System.out.println(b1 + b1.message);
            BeanClass b2 = (BeanClass) appCon.getBean("beanStaticFactory");
            System.out.println(b2 + b2.message);
            BeanClass b3 = (BeanClass) appCon.getBean("beanInstanceFactory");
            System.out.println(b3 + b3.message);
            appCon.close();
        }
    
    }

     

  • 相关阅读:
    c语言,动态数组
    利用Word来发布博客到博客园(onenote类似)
    c语言,volatile
    c语言,变长数组
    C语言,sprintf与sscanf函数[总结]
    c语言,数组和指针
    Linux的notifier机制的应用
    Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)
    内核线程的进程描述符task_struct中的mm和active_mm
    Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)
  • 原文地址:https://www.cnblogs.com/tszr/p/15310321.html
Copyright © 2011-2022 走看看