使用Spring配置实现抽象服务
我在Spring配置中实现了如下服务使用Spring配置实现抽象服务,spring,hibernate,abstract-class,Spring,Hibernate,Abstract Class,我在Spring配置中实现了如下服务 <bean id="Dao" class="com.dao.DaoImpl" abstract="true"></bean> <bean id="eduservice" class="com.services.DaoServiceImpl"></bean> 编辑 ServiceImpl类是: import java.util.List; import java.util.Map; impor
<bean id="Dao" class="com.dao.DaoImpl" abstract="true"></bean>
<bean id="eduservice" class="com.services.DaoServiceImpl"></bean>
编辑
ServiceImpl类是:
import java.util.List;
import java.util.Map;
import javax.persistence.Entity;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.dao.Dao;
import com.dao.DaoImpl;
@Service
public abstract class DaoServiceImpl<T> implements DaoService<T>{
@Override
@Transactional
public void update(T entity) {
getDomainDAO().update(entity);
}
@Override
@Transactional
public int save(T entity) {
System.out.println(":::");
return getDomainDAO().save(entity);
}
@Override
@Transactional
public void delete(T entity) {
getDomainDAO().delete(entity);
}
@Override
@Transactional(readOnly = true)
public T find(int id) {
return getDomainDAO().find(id);
}
@Override
@Transactional(readOnly = true)
public List<T> find() {
return getDomainDAO().find();
}
@Override
@Transactional
public void saveOrUpdate(T entity) {
getDomainDAO().saveOrUpdate(entity);
}
protected abstract Dao<T> getDomainDAO();
}
import java.util.List;
导入java.util.Map;
导入javax.persistence.Entity;
导入org.hibernate.SessionFactory;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Service;
导入org.springframework.transaction.annotation.Transactional;
导入com.dao.dao;
导入com.dao.DaoImpl;
@服务
公共抽象类DaoServiceImpl实现DaoService{
@凌驾
@交易的
公共无效更新(T实体){
getDomainDAO().update(实体);
}
@凌驾
@交易的
公共整数保存(T实体){
System.out.println(“:”);
返回getDomainDAO().save(实体);
}
@凌驾
@交易的
公共作废删除(T实体){
getDomainDAO().delete(实体);
}
@凌驾
@事务(只读=真)
公共找不到(内部id){
返回getDomainDAO().find(id);
}
@凌驾
@事务(只读=真)
公共列表查找(){
返回getDomainDAO().find();
}
@凌驾
@交易的
公共作废保存或更新(T实体){
getDomainDAO().saveOrUpdate(实体);
}
受保护的抽象Dao getDomainDAO();
}
我需要帮助……请帮帮我(也许这就是你想要做的 编辑:在我看来,你可能是在追求,如果是的话,你应该是这样的
<bean id="customerDao" class="com.services.Dao"></bean>
<bean id="eduservice" class="com.services.DaoServiceImpl">
<lookup-method name="getDomainDAO" bean="customerDao"/>
</bean>
这里T,Dao customerDao=new Dao();我将抽象类扩展为一个通用类,并将通用类定义为bean配置。现在它可以正常工作了
<bean id="customerDao" class="com.services.Dao"></bean>
<bean id="eduservice" class="com.services.DaoServiceImpl">
<lookup-method name="getDomainDAO" bean="customerDao"/>
</bean>