Bean有3种实例化方法
1.通过无参构造方法实例化
假如我们有以下结构:
这里我们在无参构造方法种打印字符串:
然后我们运行
可知,IoC管理bean进行实例化的时候是通过无参构造方法实例化的。
2.静态工厂实例化
假设我们有以下配置文件:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="bookDao1" class="com.itheima.dao.impl.BookDaoImpl"/><!-- 使用静态工厂方法初始化Bean --><bean id="orderDao" class="com.itheima.service.factory.BookServiceFactory" factory-method="createBookService"><property name="bookDao" ref="bookDao1"/></bean></beans>
注意:这里class指定的是工厂的地址,要加上factory-method指定其中的方法。
假设我们有一个静态工厂类 BookServiceFactory
,它包含一个静态方法 createBookService
,用于创建 BookServiceImpl
的实例:
package com.itheima.service.factory;import com.itheima.service.impl.BookServiceImpl;public class BookServiceFactory {// 静态工厂方法public static BookServiceImpl createBookService() {System.out.println("Creating BookServiceImpl using static factory method.");return new BookServiceImpl();}
}
注意:这个方法是静态的!!!!!
执行时如下:
3.实例工厂
这个方法不用加static