Java 如何在春天将一个bean注入到一组bean中?

Java 如何在春天将一个bean注入到一组bean中?,java,spring,hibernate,Java,Spring,Hibernate,我的应用程序的dao层需要一个hibernate引用 所以所有的刀豆都需要它 我对每一个都进行了配置,我想知道是否有办法在spring中将一个bean注入到一组bean中?类似切入点表达式。有关问题中特定于Hibernate的部分,请参阅“”。这一设计在今天和8年前一样有效。要点是不要重复你的道逻辑。相反,创建一个包含重复CRUD和会话管理逻辑的通用DAO父类。它通常需要两个类型参数,一个用于它管理的实体类型,另一个用于实体的@Id类型 这是这篇文章的贴纸。这是接口 public interfa

我的应用程序的dao层需要一个hibernate引用

所以所有的刀豆都需要它


我对每一个都进行了配置,我想知道是否有办法在spring中将一个bean注入到一组bean中?类似切入点表达式。

有关问题中特定于Hibernate的部分,请参阅“”。这一设计在今天和8年前一样有效。要点是不要重复你的道逻辑。相反,创建一个包含重复CRUD和会话管理逻辑的通用DAO父类。它通常需要两个类型参数,一个用于它管理的实体类型,另一个用于实体的
@Id
类型

这是这篇文章的贴纸。这是接口

public interface GenericDao <T, PK extends Serializable> {

    /** Persist the newInstance object into database */
    PK create(T newInstance);

    /** Retrieve an object that was previously persisted to the database using
     *   the indicated id as primary key
     */
    T read(PK id);

    /** Save changes made to a persistent object.  */
    void update(T transientObject);

    /** Remove an object from persistent storage in the database */
    void delete(T persistentObject);
}
公共接口GenericDao{
/**将newInstance对象持久化到数据库中*/
PK-create(T-newInstance);
/**检索以前使用保存到数据库的对象
*指定的id作为主键
*/
T读取(pkid);
/**保存对持久对象所做的更改*/
无效更新(T transientObject);
/**从数据库中的持久存储中删除对象*/
void delete(T persistentObject);
}
这是父类

public class GenericDaoHibernateImpl <T, PK extends Serializable>
    implements GenericDao<T, PK>, FinderExecutor {
    private Class<T> type;

    public GenericDaoHibernateImpl(Class<T> type) {
        this.type = type;
    }

    public PK create(T o) {
        return (PK) getSession().save(o);
    }

    public T read(PK id) {
        return (T) getSession().get(type, id);
    }

    public void update(T o) {
        getSession().update(o);
    }

    public void delete(T o) {
        getSession().delete(o);
    }

    // Not showing implementations of getSession() and setSessionFactory()
            }
公共类GenericDaoHibernateImpl
实现GenericDao、FinderExecutor{
私人阶级类型;
公共GenericDaoHibernateImpl(类类型){
this.type=type;
}
公共PK创建(TO){
返回(PK)getSession().save(o);
}
公共T读(主键id){
return(T)getSession().get(type,id);
}
公开作废更新(TO){
getSession().update(o);
}
公共作废删除(TO){
getSession()。删除(o);
}
//未显示getSession()和setSessionFactory()的实现
}

或者更好,只需使用。

为此,您可以使用bean的自动连接(Hibernate引用)到dao层。您可以按名称使用自动布线,以便一个名称可以与所有名称一起使用。这就是引入自动连接的根本目的,这样您就不必在每个bean中反复注入它们。

请添加更多细节,以防链接中断。