1. 使用构造器实例化 默认
无法干预实例化过程
<bean class="com.test.User" id="user">
<constructor-arg name="id" value="1"></constructor-arg>
<constructor-arg name="username" value="zhangsan"></constructor-arg>
<constructor-arg name="realname" value="lisi"></constructor-arg>
</bean>
2. 使用静态工厂方法实例化
factory‐method
属性标签
<bean class="com.tuling.service.impl.UserServiceImpl" id="userService2"
factory‐method="createUserServiceInstance" >
</bean>
public static UserServiceImpl createUserServiceInstance()
return new UserServiceImpl();
}
注意createUserServiceInstance()方法是静态的
3. 使用实例工厂方法实例化
与静态工厂实例方法类似,但是方法是实例方法,在bean的参数额外多了一个 factory-bean
属性标签,用以区分是实例的。
<bean class="com.tuling.service.impl.UserServiceImpl" id="userService"
factory-bean="serviceFactory"
factory-method="createUserService" >
</bean>
public class createUserService{
public UserServiceImpl createUserFactory(){
return new UserServiceImpl();
}
}
注意createUserFactory()方法是实例方法
4. FactoryBean
FactoryBean可以用来构建bean,详情参见《beanFactory与FactoryBean的区别》