Spring集成Hibernate5_04-Service层
来源:互联网 发布:海龙设计软件 编辑:程序博客网 时间:2024/06/06 03:53
Spring集成Hibernate5 , 现在需要整合Strtus2, 这就必须考虑Service层,
分层设计,通常是分成4个层
- viewer(页面显示)
- servie(用来做整个项目的逻辑控制 , 对象判断)
- dao(仅仅做数据库的基本操作)
- data(数据库)
以前: viewer直接调用dao层
现在: 在dao层上添加一个service层,
service 层进行异常处理, 以及判断等操作,
dao层 什么都不做, 只完成对数据库的处理, 不做任何判断和异常处理。
二、Service层实现流程
2.1、添加Service层, 创建IUserService接口, 定义service层方法, 这些方法就是Viewer层的功能点的具体实现
package com.chb.spring_hibernate.service;import java.util.List;import com.chb.spring_hibernate.model.User;/** * service 进行对象的操作, 异常处理, 和判断功能, * service层的每个方法都是viewer层的一个功能点。 * @author 12285 */public interface IUserService { public void add(User user, int gid); public void delete(int id); public void update(User user); public void load(int id); public List<User> listAllDao(); /** * 获取组成员 * @param id * @return */ public List<User> listByGroup(int gid);}
2.2.1 实现IUserService, service的注解为@Service
@Service //为Spring所管理public class UserService implements IUserService
2.2.2 service层通过Dao层进行数据库操作, 所以需要注入UserHibernateDao
//UserService通过UserDao进行数据库操作, 需要注入UserDao private IUserDao userHibernateDao; //注入UserHibernateDao @Resource public void setUserHibernateDao(IUserDao userHibernateDao) { this.userHibernateDao = userHibernateDao; } public IUserDao getUserHibernateDao() { return userHibernateDao; }
2.2.3、UserDao中的特殊方法放在service层操作,
2.2.4、实现add(User user, int gid)
, 需要判断, gid的组是否存在, 所以需要注入GroupHibernateDao,
2.3、GroupService 实现,
在删除一个Group, 如果删除的组中有关联用户, 将删除失败, 所以需要判断组中是否有用户,
但是只有在UserService中有listByGroup
来获取组中用户, 但是获取的是对象, 为了效率, 可以在UserDao中提供一个方法获取gid组中用户数
2.3.1、在GoupService中通过UserDao判断组中用户
2.4 加入Service层的好处, 未加入Service层, GroupDao和UserDao会产生相互嵌套, 导致问题。
阅读全文
0 0
- Spring集成Hibernate5_04-Service层
- spring service层配置
- Spring boot单元测试-service层
- spring一站式框架(service层)
- webx集成测试之service层测试
- spring service 层调用service 层是否合理
- JavaMelody监控Spring Service层和Spring Controller层
- 在Web层集成Struts2与Spring
- spring-boot 集成jpa 持久层
- Spring 3.0参考手册之集成Web Service
- cxf+web service(四)cxf+spring集成
- spring boot集成web service框架教程
- junit3测试spring下的service层
- junit3测试spring下的service层
- spring开启事务在service层
- spring 框架 service 层 事务异常
- spring封装dao和service层
- spring实现service层日志管理
- Git LFS 入门指南
- [初学笔记] cell 转换为 matrix,double 和 string,num,char的方式
- Windows环境使用CMake编译 opencv3.3.0 && opencv_contrib3.3.0
- 历程剖析:阿里云自研HTAP数据库的技术发展之路
- 深度 | NB-IoT很猛,但别忘了LoRa:物联网标准后浪推前浪 谁更“浪”
- Spring集成Hibernate5_04-Service层
- JS跳转页面的方式,以及使用JS锚点定位
- jQuery实现等比例缩放大图片让大图片自适应页面布局
- Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理
- 后台管理权限设计
- 4GQoS测速应用总结(一)
- Nodejs同步实现方式
- 寻址方式(ARM)
- 关于一个integer类型比较的一个天坑