【spring】实例化Bean(使用静态工厂方法、使用实例工厂方法、FactoryBean)

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的区别》

猜你喜欢

转载自blog.csdn.net/m0_45406092/article/details/114646974