开发者

关于Spring工厂方法注入属性方式

目录
  • 静态工厂注入
    • ① 创建实体类
    • ② 创建静态工厂类
    • ③ 创建 Spring 配置文件
  • 实例工厂注入
    • ① 创建实体类
    • ② 创建实例工厂类
    • ③ 创建 Spring 配置文件
  • 总结

    静态工厂注入

    在 Spring 中,也可以使用静态工厂的方式实例化 Bean。此种方式需要提供一个静态工厂方法创建 Bean 的实例。

    ① 创建实体类

    public class Person{
    	String name;
    	public void setName(String name){
    		this.name = name;
        }
    }

    ② 创建静态工厂类

    创建一个名为 MyBeanFactory 的类,并在该类中创建一个名为 createBean() 的静态方法,用于创建 Bean 的实例,如下所示。

    public class MyBeanFactory {
        // 创建Bean实例的静态工厂方法
        public static Person createBean() {
        	Person person = new Person();
        	person.setName("glp");
            return person;
        }
    }

    ③ 创建 Spring 配置文件

    创建 Spring 的配置文件 applicationContext.XML。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.wjs3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
        
        <bean id="person" class="com.mengma.instance.static_factory.MyBeanFactory"
            factory-method="createBean" />
            
    </beans>

    上述代码中,定义了一个 id 为 person 的 Bean,其中 class 属性指定了其对应的工厂实现类为 MyBeanFactory,而 factory-method 属性用于告诉 Spring 容器调用工厂类中的 createBean() 方法获取 Bean 的实例。

    实例工厂注入

    在 Spring 中,还有一种实例化 Bean 的方式就是采用实例工厂,直接在成员方法中创建 Bean 的实例。

    同时,在配置文件中,需要实例化的 Bean 也不是通过 class 属性直接指向其实例化的类,而是通过 factory-bean 属性配置一个实例工厂,然后使用 factory-method 属性确定使用工厂中的哪个方法。

    ① 创建实体类

    public class Person{
    	String name;
    	public void setName(String name){
    		this.name = name;
        }
    }

    ② 创建实例工厂类

    创建一个名为 MyBeanFactory 的类。

    public class MyBeanFactory {
        public MyBeanFactory() {
            System.out.println("person3工厂实例化中");
        }
        // 创建Bean的方法
        public Person createBean() {
            Person person = new Person();
        	person.setName("cbj");
            return person;
        }
    }

    ③ 创建 Spring 配置文件

    创建 Spring 的配置文件 applicationCopythonntext.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" xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
        
        <!-- 配置实例工厂 -->
        <bean id="myBeanFactory" class="com.mengma.instance.factory.MyBeanFactory" />
        
        <!-- factory-bean属性指定一个实例工厂,factory-method属性确定使用工厂中的哪个方法 -->
        
        <bean id="person" factory-bean="myBeanFactory" factory-method="createBean" />
        
    </beans>

    上述代码中,首先配置了一个实例工厂 Bean,然后配置了需要实例化的 Bean。

    在 id 为 person的 Bean 中,使用 factory-bean 属性指定一个实例工厂,该属性值就是实例工厂的 www.devze.comisxTOScd 属性值。

    使用 factory-method 属性确定使用工厂中的 createBean() 方法。

    总结

    以上为个人经验,希望能给大家一个参考http://www.devze.com,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜