四种创建Bean的方法

一.Bean的四种创建方式

1.1 普通的方式

实例化一个有公共无参构造的方法,要求有无参构造函数。

//自己写的对象:Dao,Service,Action都使用这种方法
<bean id="myBean" class="cn.itsource.spring.day2.d_prop.MyBean"/>

1.2 FactoryBean方式

  • 一个类实现了FactoryBean接口
  • 执行getObject方式,返回的值也会变成一个Bean
    准备一个FactoryBean
/**
 * 一个类实现FactoryBean接口,那么它就是一个FactoryBean
 *  泛型就是它要操作的那个类型
 */
public class EntityManagerFactoryBean implements FactoryBean<EntityManagerFactory> {

    //这个方法返回什么对象,我们拿到的bean就是什么对象
    @Override
    public EntityManagerFactory getObject() throws Exception {
        return Persistence.createEntityManagerFactory();
    }

    //返回的对象类型
    @Override
    public Class<?> getObjectType() {
        return EntityManagerFactory.class;
    }

    //这个对象是否是单例的
    @Override
    public boolean isSingleton() {
        return true;
    }
}

1.3 静态工厂

  • 工厂中有一个静态方法
  • 直接拿到这个方法中返回的对象(bean)
    准备一个静态工厂
public class DaoFactory {
    //在这个工厂中有一个静态方法
    public static MyDao createMyDao(){
        return new MyDao();
    }
}

配置这个工厂对应的方法

<bean id="myDao" class="cn.itsource._10_bean.DaoFactory"
          factory-method="createMyDao"></bean>

1.4 实例工厂

  • 工厂中有个方法
  • 直接拿到这个方法中返回的对象(bean)
    准备一个静态工厂
public class DaoFactory {
    public  MyDao createMyDao(){
        return new MyDao();
    }
}

配置这个工厂对应的方法

<!--工厂的一个方法(非静态)-->
<bean id="daoFactory" class="cn.itsource._10_bean.DaoFactory" />
<bean id="myDao" factory-bean="daoFactory" factory-method="createMyDao" />
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值