public abstract class BaseDao<E extends BaseEntity> extends JpaDaoSupport {
/**
* 创建实体
*
* @param entity
*/
public void insert(E entity) {
entity.setCreateTime(DateTimeUtil.currentTime());
getEntityManager().persist(entity);
}
}
@Transactional(propagation=Propagation.REQUIRED)
public abstract class BaseService<E extends BaseEntity> {
protected BaseDao<E> dao;
public void setDao(BaseDao<E> dao) {
this.dao = dao;
}
public BaseDao<E> getDao() {
return dao;
}
/*
* 新增
*/
public void insert(E obj) {
dao.insert(obj);
}
}
@Repository("reasonDao")
public class ReasonDao extends BaseDao<Reason> {
}
public interface ReasonService extends IBaseService<Reason> {
}
@Transactional
@Service("reasonService")
public class ReasonServiceImpl extends BaseService<Reason> implements ReasonService {
@Resource(name = "reasonDao")
private ReasonDao reasonDao;
}
@Transactional
@Service("reasonService")
public class ReasonServiceImpl extends BaseService<Reason> implements ReasonService {
@Resource(name = "reasonDao")
private ReasonDao reasonDao;
@Resource(name = "reasonDao")
public void setDao(BaseDao<Reason> dao) {
super.setDao(dao);
}
}
分享到:
相关推荐
Spring注解是Spring框架中的一种重要特性,它允许开发者在Java代码中直接声明配置,减少了XML配置文件的繁琐。从2.5版本开始,Spring引入了注解支持,极大地简化了依赖注入(Dependency Injection,DI)的过程。 在...
为了注入具体的DAO实现,例如`OrganizationService`,我们通常需要一个setter方法`setDao(BaseDao<M> repository)`,然后使用@Autowired注解来注入对应的DAO。这种做法存在一个问题,即无法直接在编译时检查依赖注入...
在这个积分管理系统中,使用了BaseService和BaseDao的设计模式。BaseService通常包含了通用的服务方法,比如CRUD操作,而BaseDao则提供了数据库操作的模板方法。这样的设计可以减少代码的重复性,提高开发效率,因为...
此外,DAO层需要的sqlMapClient和其他依赖已在BaseDao中自动注入。 4. **Domain层**: Domain层包含业务对象(Entity或VO),这些对象代表了数据库中的表或特定的业务实体。在本例中,所有实体都应继承自VoBase,...
@Autowire是Spring框架中一个非常重要的注解,用于自动装配Bean。下面将详细介绍@Autowire注解的用法和相关实现步骤。 首先,需要在项目中配置Spring框架。可以通过在XML文件中配置Bean来实现。例如: ```xml ...
在SSM中,Spring作为容器管理服务对象,如DAO和Service,通过配置文件或注解实现依赖注入。 2. **Spring MVC**:Spring的Web MVC模块,用于处理HTTP请求和响应。它提供了一种模型-视图-控制器(MVC)的设计模式,使...
在"ssh框架完美整合"中,我们通常会创建一个BaseService或BaseDAO的父类,将共用的功能抽取出来,比如数据源配置、事务管理等。这样,子类只需继承这个父类,就能自动获得这些功能,大大减少了重复代码,提高了代码...