声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!

  • 构造方法实例化bean

  • 使用静态方法实例化bean

  • 使用实例化工厂实例化bean

  • 使用FactoryBean实例化bean

1.构造方法

提供无参构造方法

public class BookDaoImpl implements BookDao {
    private BookDaoImpl() {
        System.out.println("book dao constructor ... ");
    }

    @Override
    public void save() {
        System.out.println("book dao -- save");

    }
}

xml

<bean id="bookDao" class="com.badianboke.dao.impl.BookDaoImpl"></bean>

2.静态工厂

public class BookFactory {
    public static BookDao getBookDao(){
        System.out.println("book factory ... ");
        return new BookDaoImpl();
    }
}

xml

<bean id="bookFactory" 
    class="com.badianboke.factory.BookFactory" 
    factory-method="getBookDao">
</bean>

3.实例工厂

public class BookFactory {
    public BookDao getBookDao(){
        System.out.println("book factory ... ");
        return new BookDaoImpl();
    }
}

xml

<bean id="bookFactory" class="com.badianboke.factory.BookFactory"></bean>
<bean id="bookDao" factory-method="getBookDao" factory-bean="bookFactory"></bean>

3.使用FactoryBean实例化

BookDaoFactoryBean

package com.badianboke.factory;

import com.badianboke.dao.BookDao;
import com.badianboke.dao.impl.BookDaoImpl;
import org.springframework.beans.factory.FactoryBean;

public class BookDaoFactoryBean implements FactoryBean<BookDao> {
    @Override
    public BookDao getObject() throws Exception {
        return new BookDaoImpl();
    }

    @Override
    public Class<?> getObjectType() {
        return BookDao.class;
    }

    @Override
    public boolean isSingleton() {
        return FactoryBean.super.isSingleton();
    }
}

xml

<bean id="bookDao" class="com.badianboke.factory.BookDaoFactoryBean"></bean>



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论