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);
}
}
分享到:
相关推荐
在Java开发中,BaseDao和BaseService是常见的设计模式,用于实现数据访问层(DAO)和业务逻辑层(Service)的抽象基类。通过结合泛型,我们可以创建更通用、灵活的代码,减少冗余并提高代码质量。 首先,我们来理解...
在上面的代码中,`@Resource`注解表示Spring会尝试通过字段名`baseDao`查找对应的bean进行注入。如果添加`name`属性,如`@Resource(name="baseDao")`,则会按指定名称查找。`@Autowired`注解则基于类型自动匹配并...
BaseService里注入BaseDao 和transactionTemplate(用于编程式事务处理,只用于特殊需要,因为已经存在配置式事务,一般符合命名的方法会自动创建事务) 其他功能: shown工具包 - 图片上传,分页 urlRewrite - ...
为了注入具体的DAO实现,例如`OrganizationService`,我们通常需要一个setter方法`setDao(BaseDao<M> repository)`,然后使用@Autowired注解来注入对应的DAO。这种做法存在一个问题,即无法直接在编译时检查依赖注入...
在这个积分管理系统中,使用了BaseService和BaseDao的设计模式。BaseService通常包含了通用的服务方法,比如CRUD操作,而BaseDao则提供了数据库操作的模板方法。这样的设计可以减少代码的重复性,提高开发效率,因为...
在BaseService中,通过setDaoBase方法注入Dao,确保BaseService能操作特定的实体。 3. **DAO层**: DAO层负责与数据库的交互,实现数据的CRUD操作。DAO通常继承自DaoBase,DaoBase提供了基于NameSpace的查询方法。...
这是一个Spring MVC + Mybatis 的项目,不仅仅只是简单的demo或是增删改查,她将含括很多的方面:尽量抽取basedao,baseService公共部分,做出一个简单的framework,为以后分布式开发提供基础。 ##内容 Spring的国际...
@Autowire是Spring框架中一个非常重要的注解,用于自动装配Bean。下面将详细介绍@Autowire注解的用法和相关实现步骤。 首先,需要在项目中配置Spring框架。可以通过在XML文件中配置Bean来实现。例如: ```xml ...
在实际应用中,可以通过Spring的@Autowired注解来注入Mapper接口,然后在业务逻辑中调用其提供的方法进行数据库操作。通过编写JUnit测试,验证tk.mybatis的功能是否正常工作。 总结,Spring 4.0集成tk.mybatis插件...
在Service层,我们可以结合MyBatis-Plus的BaseService和BaseMapper来进一步利用动态注解。例如,通过`baseMapper.selectOne()`或`baseMapper.selectList()`方法,我们可以轻松地实现对查询结果的处理。 总之,...
在SSM中,Spring作为容器管理服务对象,如DAO和Service,通过配置文件或注解实现依赖注入。 2. **Spring MVC**:Spring的Web MVC模块,用于处理HTTP请求和响应。它提供了一种模型-视图-控制器(MVC)的设计模式,使...
### Spring MVC 学习笔记之 AOP 面向切面编程详解 #### 一、AOP 概念概述 面向切面编程(Aspect Oriented Programming...通过这种方式,可以有效地将这些横切关注点从业务逻辑中分离出来,使代码更加清晰和易于维护。
Spring 框架是 Java 开发中的一个核心组件,它提供了强大的依赖注入(Dependency Injection,简称 DI)功能,使得开发者可以轻松地管理对象及其依赖关系。"spring-pluggable" 是 Spring 框架的一个特性,它允许在...
在Spring Boot应用中,多数据源连接是一种常见的需求,尤其在大型系统中,可能需要连接到不同的数据库以实现数据隔离、读写分离或是利用不同类型的数据库特性。本项目提供了实现这一功能的示例,可以直接使用,同时...
在代码结构上,系统采用了分层设计,包括BaseParameter、ExtJSBaseController、BaseService和BaseDao,封装了模型层、控制层、业务逻辑层和数据持久层的通用操作。ListView、PageView和QueryResult用于后台分页处理...
通过Mapper接口和XML或注解方式的映射文件,开发者可以方便地执行SQL,获取或更新数据。 在项目中封装通用的增删查改API,通常会涉及到以下步骤: 1. 创建基类:定义一个BaseService或者BaseMapper基类,包含通用...
在"ssh框架完美整合"中,我们通常会创建一个BaseService或BaseDAO的父类,将共用的功能抽取出来,比如数据源配置、事务管理等。这样,子类只需继承这个父类,就能自动获得这些功能,大大减少了重复代码,提高了代码...
总的来说,XXF.BaseService.DistributedCache是一个全面的.NET分布式缓存解决方案,它提供了集群化、容错性、多存储后端支持以及丰富的操作接口,旨在帮助开发者轻松应对大规模分布式环境下的缓存管理问题。...
2. **主程序**:主程序类通常包含`@SpringBootApplication`注解,这个注解结合了`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`,启动Spring Boot的应用。 3. **配置文件**:配置文件...