<bean id="user" class="com.wm103.ioc.UserFactory" factory-metho
d="createInstance"></bean>
(3)使用实例工厂创建
如果一个 Bean 不能通过 new 直接实例化,而是通过工厂类的某个实例方
法创建的,需要先配置工厂的<bean>标签,然后在需要创建的对象的 bean 标签
的 factory-bean 属性配置为工厂类对象,factory-method 属性配置为产生实
例的方法。如:
<!-- 等同于 userFactory = new com.wm103.ioc.UserFactory(); -->
<bean id="userFactory" class="com.wm103.ioc.UserFactory"></bea
n>
<!-- 等同于 user = userFactory.createInstance(); -->
<bean id="user" factory-bean="userFactory" factory-method="crea
teInstance"></bean>
Bean 标签的常用属性
(1)id 属性:用于指定配置对象的名称,不能包含特殊符号。
(2)class 属性:创建对象所在类的全路径。
(3)name 属性:功能同 id 属性一致。但是在 name 属性值中可以包含特殊符
号。
(4)scope 属性
singleton:默认值,单例
单例模式下,在程序下只有一个实例。非单态模式下,每次请求该 Bean,都
会生成一个新的对象。
prototype:多例
request:创建对象后将对象存放到 request 域
session:创建对象后将对象存放到 session 域
globalSession:创建对象后将对象存放到 globalSession 域
属性注入
属性注入指创建对象时,向类对象的属性设置属性值。
在 Spring 框架中支持 set 方法注入和有参构造函数注入,即创建对象后通
过 set 方法设置属性或采用有参构造函数创建对象并初始化属性。
使用有参构造函数注入属性
案例:
Student.java 提供有参的构造方法
package com.wm103.ioc;
public class Student {