Java如何通过工厂方法创建bean?

本示例说明如何在Spring Framework中使用工厂方法创建bean。我们将以单例为例。只能从工厂方法获取单例的实例,因为单例将具有私有构造函数,因此无法从单例本身之外创建此类的实例。

这是我们的单例豆外观。要获得它的实例,我们很需要调用该getInstance()方法。

package org.nhooo.example.spring.factory;

public class Singleton {

    /**

     * Private constructor.

     */

    private Singleton() {

    }

    private static class SingletonHolder {

        static Singleton instance = new Singleton();

    }

    /**

     * Get an instance of Singleton class.

     * @return an instance of Singleton class.

     */

    public static Singleton getInstance() {

        return SingletonHolder.instance;

    }

    /**

     * Do something.

     */

    public void doSomething() {

        System.out.println("Singleton.doSomething");

    }

}

接下来,我们将创建一个spring配置文件。最简单的是,配置文件中的Bean将具有id和class。要告诉spring容器使用工厂方法创建bean,我们必须使用factory-methodbean元素的属性。

这是我们的配置文件,我们为其命名factory-method.xml。

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="singleton"

          factory-method="getInstance">

    </bean>

</beans>

现在让我们在下面运行程序:

package org.nhooo.example.spring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class FactoryMethodDemo {

    public static void main(String[] args) {

        ApplicationContext context =

                new ClassPathXmlApplicationContext("factory-method.xml");

        Singleton instance =

                (Singleton) context.getBean("singleton");

        instance.doSomething();

    }

}

                       

以上是 Java如何通过工厂方法创建bean? 的全部内容, 来源链接: utcz.com/z/326317.html

回到顶部