1. 实例化方式
1.1默认构造
<bean id=" " class=" ">
必须提供默认构造
1.2静态工厂
常用于spring整合其他框架(工具)
静态工厂:用于生成实例对象,所有的方法必须是static
工厂方法:
public static BookService StaticCreateBean() {
return new BookServiceImpl();
}
.xml文件:
<bean id="bookServiceStaticBean" class="cn.itcast.spring.inject.MyStaticBeanFactory" factory-method="StaticCreateBean"></bean>
1.3实例工厂
工厂方法:
public BookService CreateBean() {
return new BookServiceImpl();
}
.xml文件:
<bean id="bookSeviceBeanFactory" class="cn.itcast.spring.inject.MyBeanFactory"></bean>
<bean id="bookSeviceBean" factory-bean="bookSeviceBeanFactory" factory-method="CreateBean"></bean>
2.bean的种类
2.1 普通bean:
<bean id=" " class="A">
,spring直接创建A实例,返回
2.1 FactoryBean:具有工厂生成对象能力,只能生成特定的对象
使用:bean必须使用 FactoryBean接口,实现getObject() 方法用于获得特定bean
<bean id="" class="FB">
, 先创建FB实例,再调用getObject()方法,返回方法的返回值
FB fb = new FB();
return fb.getObject();
3.作用域
scope属性:
1 .singleton:单例模式,默认值
2 .prototype:多例
例:
<bean id="userServiceId" class="com.itheima.d_scope.UserServiceImpl"
scope="prototype" ></bean>