bean的实例化的三种方式

创建对象三种的方式

无参构造函数

无参构造函数
<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();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容