在学习Spring bean的实例化方式的时候遇到的一个问题,Spring bean实例化有3种方法
- 通过类的构造器生成
- 通过静态工厂方法创建
- 通过实例工厂方法创建
那么问题来了,什么是静态工厂方法,什么是实例工厂方法?两者有什么区别呢?
静态工厂方法
就是直接可以通过静态方法来实例化一个对象
1 2 3 4 5 6 7
| public class HelloWorldFactory { public static HelloWorld getInstance(){ return new HelloWorld(); } }
HelloWorldFactory.getInstance();
|
创建 HelloWorld 对象直接可以调用getInstance方法来进行实现
实例工厂方法
就是先创建类对象,如何通过对象来调用创建实例对象的方法
1 2 3 4 5 6 7 8
| public class HelloWorldFactory { public HelloWorld createHelloWorld(){ return new HelloWorld(); } }
HelloWorldFactory helloFactory = new HelloWorldFactory(); helloFactory.createHelloWorld();
|
关于applicationContext.xml
1 2 3 4 5 6 7
|
<bean id="HelloStaticFactory" factory-method="getInstances" class="com.coder.ioc.HelloStaticFactory"></bean>
|
1 2 3 4 5 6 7 8
|
<bean id="HelloInstanceFactory" class="com.coder.ioc.HelloInstanceFactory"></bean> <bean id="instance" factory-bean="HelloInstanceFactory" factory-method="getInstance"></bean>
|