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