java中Springjava中%是什么意思?

按我的经验service a不能调用b的dao层,只能调用b的service层实现业务

因为b的service是对dao的CRUD封装,如果是单库的话service或许只是dao的代理但如果有cache,跨库查询那显然调用dao b是不合理的可以类比为视頻系统调用用户系统,视频系统不关心用户系统的dao层实现机制只要通过service层查询到用户信息即可。

另外你说的业务依赖确实有这样的困惑但本身java类之间通讯就是有依赖关系的,或许如果service a业务依赖的service b业务太过于复杂时你可以再次抽象出service b的另外一个interface就ok了

这个问题非常好,也昰我一直想总结分享的具体可以看下我分享的完整的java项目代码。

Object)来使用.当然,如果你有一个简单的運算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法

    POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为訪问的接口例如:

POJO对象有时也被称为Data对象,大量应用于表现现实中的对象

结合简单总结一下自己的理解:

(上图AD和BC代表两个事务,12,3代表事务执行的三个阶段图简陋了点,有点像“金箍棒”)


使用嵌套事务的场景有两点需求:

  1. 需要事务BC與事务AD一起commit即:作为事务AD的子事务,事务BC只有在事务AD成功commit时(阶段3成功)才commit这个需求简单称之为“联合成功”。这一点PROPAGATION_REQUIRED可以做到

使鼡PROPAGATION_REQUIRES_NEW满足需求2,但子事务(这时不应该称之为子事务)BC是完全新的事务上下文父事务(这时也不应该称之为父事务)AD的成功与否完全不影響BC的提交,不能满足需求1

 当阶段2执行异常,导致BC事务rollback时因为设置了savePoint,AD事务可以选择与BC一起rollback或继续阶段3的执行并保留阶段1的执行结果從而满足了“隔离失败”。

当然要明确一点,事务传播策略的定义是在声明或事务管理范围内的(首先是在EJB CMT规范中定义Spring事务框架补充叻PROPAGATION_NESTED),编程式的事务管理不存在事务传播的问题

强调,补充一点:PROPAGATION_NESTED只是Spring针对JDBC3.0以上版本SavePoint机制的一个事务传播机制的扩展J2EE体系中是没有的,所以如果应用中使用JTA作为底层的事务管理机制的话使用Spring也是不可能支持PROPAGATION_NESTED。不过JPA的体系中好像是有SavePoint的机制(还没有细研究过)Spring应该可鉯在之上做相应的支持。这点有待进一步研究!

我要回帖

更多关于 java中%是什么意思 的文章

 

随机推荐