service层多个方法中包含相同的业务逻辑是一种很常见的现场,通常会遇到如下几个问题:
1.怎样合理的抽象出公共的业务逻辑?
2.怎样处理service层中方法之间的调用?
3.怎样处理这些方法的事务?
下面是我个人的处理方式,仅供参考。由于实现比较简单,所以相关说明较少。
代码示例:
public void serviceMehtod1(){
dao.insert();
....
dao.update();
}
public void serviceMethod2(){
dao.insert();
}
serviceMehtod1中的事务范围是insert()+update(),serviceMehtod2的事务范围是insert(),
添加了事务处理后的代码很简单,相信不用我解释大家都能看明白。
public void serviceMehtod1(){
//开始事务
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
insertService()
....
updateService()
tx.commit();
//事务终止
}
public void serviceMethod2(){
//开始事务
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
insertService();
tx.commit();
//事务终止
}
//公共业务逻辑
//不添加事务处理
public void insertService(){
dao.insert();
}
//公共业务逻辑
//不添加事务处理
public void updateService(){
dao.update();
}
当然,对于公共的业务逻辑,比较好的方式是:封装他们到一个基类。
具体的领域对象或者service层对象继承调用这个基类就可以了。
分享到:
相关推荐
Service层通常调用Dao层的方法来完成对数据的增删改查,并进行必要的业务验证和异常处理。在设计Service时,我们需要考虑到服务的可重用性和松耦合性,确保各个Service之间相互独立,便于维护和扩展。 在实际开发中...
在描述中提到的"抽象工厂"设计模式,是工厂方法模式的进一步抽象,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在六层架构中,特别是在数据访问层,抽象工厂可以用来创建针对不同...
6. **Action类**:Struts2中的控制器,接收用户请求,调用Service层的方法,然后将结果转发给相应的视图。 7. **视图(View)**:可能是JSP页面或其他类型的视图技术,展示给用户。 通过分析这个DEMO,你可以学习...
配置SpringMVC,使其能够调用service层提供的服务,并将结果返回给客户端。 **4.7 SSM实例** 一个完整的SSM框架整合示例项目,涵盖从数据库连接到页面展示的整个流程。 #### Spring框架详解 **5.1 Spring的特点*...
8. 分布式事务处理 9. 数据一致性解决方案 10. 安全性管理 11. 日志收集与分析 12. 持续集成/持续部署(CI/CD) 13. 服务测试框架 14. 微服务治理工具 15. 系统健康检查 16. 服务性能优化 17. 容错机制 18. 配置中心...
- **事务管理与安全性:** ESB还承担着处理事务和安全性的职责,确保服务调用的完整性和安全性。 - **性能优化:** ESB通过缓存、负载均衡等机制提高系统的整体性能。 综上所述,SOA提供了一种设计思路,而ESB则为...
实时数据中间层技术结合了实时系统和数据库技术的优点,专门处理快速变化的数据和具有时间限制的事务。它不仅解决了实时系统中的数据管理问题,还为实时数据提供了时间驱动的调度和资源分配算法。针对不同的应用需求...
- **反射**:一种可以在运行时分析类、方法和属性的机制,用于获取类的信息或动态调用方法。 **3.3 网站安全问题** - **常见问题**:SQL注入、XSS攻击、CSRF攻击等。 - **防护措施**:使用预处理语句、过滤用户...
各层之间通过接口通信,Web Service可用于实现远程服务调用。 #### 数据结构或算法观点分享 例如,链表是一种线性数据结构,适用于频繁插入和删除的场景,但查找效率低于数组。 #### 特殊数据结构设计 如设计...
EJB作为JavaBeans的高级版本,针对企业级应用提出了更高的要求,尤其是在性能、事务处理和安全性方面。它确保了企业系统随着业务规模的增长而平稳演进,避免了因系统重构带来的资源浪费。同时,JavaBeans的演化并未...
面向方面的编程(Aspect-Oriented Programming,AOP)是一种编程范式,它以横切关注点(Crosscutting Concerns)为出发点,比如日志、安全和事务处理等,这些关注点通常散布在系统的各个模块中,不易于管理。...
整体结构和一些主要职责(如数据库操作 事务跟踪 安全等),剩余的就是变化的东西,针对这个领域中具体应用产生的具体不同 的变化需求,而这些变化东西就是 J2EE 程序员所要做的。 由此可见,设计模式和 J2EE 在思想...