美文网首页
Spring Bean的三种管理方式

Spring Bean的三种管理方式

作者: 杨凯飞 | 来源:发表于2018-06-05 22:10 被阅读0次

    1.使用类构造器实例化(默认无参数) 

    2.使用静态工厂方法实例化(简单工厂模式) 

    3.使用实例工厂方法实例化(工厂方法模式)

    第一种

        使用它的无参构造方法来实例化,如下图

    Bean1的类 配置Bean1 实例化Bean1

    第二种

        首先创建一个Bean2类

    package com.jiaoshou.ioc.demo2;

    /**

    * 使用静态工厂方法实例化(简单工厂模式)

    */

    public class Bean2 { }

        然后再创建一个Bean2的静态工厂类

    package com.jiaoshou.ioc.demo2;

    /**

    * Bean2的静态工厂

    */

        public class Bean2Factory {

            public static Bean2 getBean2() {

                System.out.println("Bean2实例化了,并且Bean2Factory也执行了");

                return new Bean2();

            }

        }

    配置applicationContext.xml,

    <bean id="bean2" class="com.jiaoshou.ioc.demo2.Bean2Factory" factory-method="getBean2">

    其中的 factory-method为选择这个类的方法

    class的值是静态工厂类,而不是Bean2

    在方法中运行

    @Test

    public void demo2() {

        //创建工程

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        Bean2 bean2=(Bean2) applicationContext.getBean("bean2");

    }

    第三种

        首先创建一个Bean3类

    package com.jiaoshou.ioc.demo2;

    /**

    * 使用实例工厂方法实例化(工厂方法模式)

    */

    public class Bean3 {

    }

    然后再创建一个Bean3的实例工厂类

    package com.jiaoshou.ioc.demo2;

    /**

    * Bean3的实例工厂

    */

    public class Bean3Factory {

        public Bean3 getBean3() {

            System.out.println("Bean3实例化了,并且Bean3Factory也执行了");

            return new Bean3();

        }

    }

    配置applicationContext.xml

    <bean id="bean3Factory" class="com.jiaoshou.ioc.demo2.Bean3Factory"/>

    <bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"/>

    在方法中运行

    @Test

    public void demo3() {

        //创建工程

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        Bean3 bean3=(Bean3) applicationContext.getBean("bean3");

    }

    总结: 静态工厂方法和实例工厂方法方法的区别

        1.在建立工厂类的时候一个是静态的一个不是静态的

        2.在配置XML的时候,实例工厂需要显配置实例工厂,然后再配置要实例的类,因为静态的工厂类可以直接通过类名得到方法,而非静态类不能使用对象.方法。

    相关文章

      网友评论

          本文标题:Spring Bean的三种管理方式

          本文链接:https://www.haomeiwen.com/subject/fstvsftx.html