bean的实例化的三种方式

2018-03-29  本文已影响0人  打死你的小白兔
创建对象三种的方式

无参构造函数

无参构造函数
<bean id="helloWorld" class="com.hw.entity.HelloWorldFactory" >
</bean>

静态工厂

public class HelloWorld {
    public void hello() {
        System.out.println("哈哈");   
    }
}
--------------------------------------------
public class HelloWorldFactory {
    public static HelloWorld getFactory() {
        return new HelloWorld();
    }
}
---------------------------------------------------
<bean id="helloWorld2" class="com.hw.entity.HelloWorldFactory" factory-method="getFactory"></bean>

    @Test
    public void test001() {
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        HelloWorld hello = (HelloWorld) ac.getBean("helloWorld2");
        hello.hello();
    }
}

实例工厂

public class HelloWorld {
    public void hello() {
        System.out.println("哈哈");   
    }
}

public class HelloWorldFactory {
    public HelloWorld getFactory() {
        return new HelloWorld();
    }
}

<bean id="helloWorld" class="com.hw.entity.HelloWorldFactory" ></bean>
<bean id="helloWorld3" factory-bean="helloWorld" factory-method="getFactory"></bean>

    @Test
    public void test001() {
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        HelloWorld hello = (HelloWorld) ac.getBean("helloWorld2");
        hello.hello();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读