一、bean的配置
1.1 bean的基础配置
id: bean的id,使用容器可以通过id值获取对应的bean,在一个容器中id值唯一
class: bean的类型,即配置的bean的全路径类名
<bean id="bookDao" class = "com.zhang.dao.impl.BookDaoImpl"/><bean id="bookService" class="com.zhang.service.impl.BookServiceImpl"/>
1.2 bean的别名配置
name:bean的别名,可以通过name值获取对应的bean,在容器中name值不唯一
<bean id="bookDao" name="name1 " class = "com.zhang.dao.impl.BookDaoImpl" /><bean id="bookService" name="name2 name3" class="com.zhang.service.impl.BookServiceImpl"/>
1.3 bean的作用范围配置
scope: bean标签,singleton(单例) prototype(非单例)
<!-- 默认是singleton--><bean id="bookDao" name="name1 " class = "com.zhang.dao.impl.BookDaoImpl" scope="singleton"/><bean id="bookService" name="name2 name3" class="com.zhang.service.impl.BookServiceImpl" scope="prototype"/>
二、bean的实例化
2.1 bean是如何创建创建的?
bean本质上就是对象,创建bean使用构造方法完成(private修饰的构造方法也能创建实例化bean)
证明:
2.2 使用静态工厂实例化bean
factory-method:标明创建对象的工厂方法
<bean id="orderDao" class="com.zhang.factory.OrderDaoFactory" factory-method="getOrderDao"/>
2.3 使用实例工厂实例化bean
第一步:先创建工厂对象的bean
第二步:标明工厂方法和工厂bean对象
<bean id="userFactory" class="com.zhang.factory.UserDaoFactory"/>
<bean id="userDao" factory-method="getUserDao" factory-bean="userFactory"/>