您的位置:首页 > 运维架构 > Linux

centos 下 搭建 nodejs 开发环境

2014-10-23 11:32 197 查看
为什么service业务层要引入事务管理器而持久化dao层却没有?
因为持久化层是平台相关的,可以直接通过Jdbctemplate模板采用接口回调方式得到session再得到transaction的方式实现事务管理的功能.
而业务层则是平台无关的,但还要进行事务管理,就引入了事务管理器的概念.
业务层实现类也是通过事务模板采用接口回调的方式,不过它得到的是参数是transactionStatus,再通过事务状态调用底层的持久化技术的API,实现事务管理的功能.
二者实现事务管理的功能都必须依赖于整合hibernate资源的核心入口sessionfactory.

系统级功能:公共的模块化的功能实现
spring声明式事务管理是通过aop代理的方式实现事务管理.这是它的强项.
不管是采用编程式还是声明式事务管理,事务管理器才是它的核心所在.
Spring内置了事务通知,所以我们直接配置就可以使用.
在spring中,AOP和事务管理是最重要的.

AOP 理解: 不改变源代码,增加新的功能.
事务属性的设置是给代理对象看的,因为是运行时织入,它对目标对象毫无意义.
事务的只读属性的设置起数据库优化的作用.超时属性设置释放资源.
使用Aspectj在业务类上添加事务管理注解@Transactional,需要在配置文件中启用基于注解方式的事务管理.可以在方法上声明具体的事务属性以覆盖类上的通用事务属性设置.

<tx:annotation-driven>
pojo+xml方式实现事务管理的功能,是最常用的.它需要配置会话工厂,事务管理器,定义事务通知应用策略,在AOP配置中配出切入点通知组合体.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: