`

service的自调用 VS service之间调用

 
阅读更多
一、seervice的自调用:
    public interface AService {  
        public void a();  
        public void b();  
    }  
       
    @Service()  
    public class AServiceImpl1 implements AService{  
        @Transactional(propagation = Propagation.REQUIRED)  
        public void a() {  
            this.b();  
        }  
        @Transactional(propagation = Propagation.REQUIRES_NEW)  
        public void b() {  
        }  
    }  

 如上,为在一个对象,service里面自调用(自己方法调自己的方法),这样的情况,this.b()是不会事务增强的。可以参考我的另一篇博客 spring doc 学习 之 事务篇 。spring文档有说到过,必须外部调用才会事务增强。

原因就是:this.b(),这里的this就是当前对象,而非proxy对象,当然没有事务增强了。 (这里也应该是在mode=proxy的情况下,如果mode=aspectj则没有这个情况。因为aspectj没用代理)

 

--以上所说,只是内部调用的时候b()方法上面的Propagation.REQUIRES_NEW,不会再开启事务而已。也就是说b的事务配置没有生效,但是根据spring的事务传播特性,b此时还是在a()方法的事务范围内的,也就是说他们是同一个事务。

 

也可以参考这个博客 http://blog.csdn.net/wxwzy738/article/details/27566645

 以及我转的另一篇博客 :Spring事务传播特性的浅析——事务方法嵌套调用的迷茫

 

二、service之间的调用:

ServiceA {   
       
       
     void methodA() {   
         ServiceB.methodB();   
     }   
  
}   
  
ServiceB {   
       
         
     void methodB() {   
     }   
       
}      

 这种情况,因为都是外部调用,都会开启事务,并且依据事务传播特性,会传播到B方法。

 

 

总结,这两种情况有点像,要区分对待。可以加深理解aop对事务的处理

0
1
分享到:
评论

相关推荐

    自己写的service及调用

    这里我们关注的是"自己写的service及调用",这个话题涉及到Web服务(Web Service)的概念、Eclipse IDE的使用以及Java编程语言的应用。Web服务允许不同应用程序之间的数据交换,通常基于开放标准如XML、SOAP和WSDL,...

    C#调用WCFService示例

    3. **实现服务接口**:创建一个类(如Service1.cs)继承自刚刚定义的接口,并实现接口中的方法。 4. **配置服务**:编辑App.config文件,配置服务的行为、终结点和绑定,指定服务监听的地址、使用的协议等信息。 5. ...

    Web Service远程调用技术

    Web Service 远程调用技术 Web Service 是一种跨编程语言和跨操作系统平台的远程调用技术,通过 SOAP 在 Web 上提供的软件服务,使用 WSDL 文件进行说明,并通过 UDDI 进行注册。XML 是 Web Service 的基础,它是...

    一个Activity 调用Service接口的DEMO

    本DEMO将详细解释如何在一个Activity中调用Service接口,以便在后台执行特定任务。 首先,我们需要创建一个Service类。在AndroidManifest.xml文件中,必须声明这个Service,这样系统才能知道它的存在。声明Service...

    动态调用Web Service

    动态调用Web Service 在ASP.NET和C#中,动态调用Web Service是指在不添加Web Service引用的情况下,后台动态调用Web Service。这种方法可以完全动态处理,传入服务服务网址、方法名和参数即可。 在本例中,我们...

    通过aidl service调用activity

    本篇将深入探讨如何通过AIDL来调用Service,并进而启动Activity,以及相关的源码分析和工具使用。 首先,理解AIDL的基本概念是必要的。AIDL定义了一种接口,这个接口可以被多个进程共享,允许一个进程(如Service)...

    WCFService可以通过web调用和WCF服务访问

    在标题和描述中提到的“WCFService可以通过web调用和WCF服务访问”,这意味着该服务已经配置为允许两种不同的调用方式。 1. **Web调用**:WCF服务可以通过HTTP协议暴露为Web服务,允许任何支持SOAP协议的客户端进行...

    一个及其简单的AIDL远程Service调用

    本示例"一个及其简单的AIDL远程Service调用"展示了如何通过AIDL在客户端(TestAidlClient)与服务端(TestAidlService)之间建立通信,实现远程调用。 首先,我们需要理解Service的基本概念。在Android中,Service...

    基于Axis的Web Service客户端调用

    【标题】基于Axis的Web Service客户端调用 在IT领域,Web Service是一种通过网络进行通信的标准协议,它允许不同系统间的应用程序互相交换数据。而Apache Axis是Java平台上的一个开源工具,专门用于创建和部署Web ...

    SAP-WEBSERVICE调用案例

    本文将详细介绍如何在SAP系统中实现对Web Service接口的调用,并通过实际案例进行演示。 #### 二、SAP调用Web Service概述 SAP调用Web Service通常涉及以下几个步骤: 1. **创建WebService连接**:首先需要在SAP...

    ASP.net 中用C#调用Java web service 图解教程

    Web Service 是一种基于 XML 的远程 procedure 调用(RPC)机制,它允许多种语言和平台之间的交互操作。Web Service 的主要特点是: * 基于 XML 的数据交换 * 使用 SOAP 消息进行交互 * 可以跨语言、跨平台、跨网络...

    WinCE中的Web Service调用

    总结,WinCE平台上的Web Service调用涉及到的知识点包括:Web Service原理、.NET Compact Framework、添加Web引用、生成代理类、Web Service调用流程、XML处理、网络通信优化、线程管理和错误处理。了解并掌握这些,...

    webservice接口调用实例

    Web服务(Web Service)是一种基于互联网的、使用标准XML(Extensible Markup Language)进行通信的软件服务,允许...通过实践"webservice_client"这个实例,你可以深入理解这些概念并掌握Web Service调用的具体步骤。

    Web Service创建及调用

    类中的`Add`方法使用了`[WebMethod]`属性标记,表示这是一个可以通过Web Service调用的方法。 #### 三、如何调用Web Service 调用Web Service的过程通常涉及以下几个步骤: 1. **获取WSDL文件**:首先,需要从Web...

    android基础知识05:四大组件之service 02:远程调用实例程序

    总结来说,远程调用Service是Android开发中处理跨进程通信的重要技术。通过AIDL定义接口,Service端实现接口并返回Binder对象,客户端通过绑定Service并调用接口方法,可以实现客户端与服务端的交互。理解并熟练掌握...

    web service与sap_ecc系统服务发布与调用

    "Web Service与SAP ECC系统服务发布与调用" 在现代企业信息化中,Web Service和SAP ECC系统的集成是一种常见的解决方案。通过Web Service,SAP ECC系统可以与外部系统进行集成,实现业务流程的自动化和数据的实时...

    基于Delphi的Web Service 客户端调用

    Web Service 是一种新型的网络应用程序,它具有自包含(Self-Contained)、自描述(Self-Describing)以及模块化的特点。Web Service 通过网络发布其接口描述,允许任何人在任何地方调用其提供的服务。这种服务可以...

    WCFService移动端调用服务配置

    **WCFService移动端调用服务配置** Windows Communication Foundation(WCF)是.NET Framework中的一个核心组件,用于构建可互操作的、安全的、可靠的服务。本文将深入探讨如何配置WCF服务以支持移动端调用,并利用...

    Web_Service与SAP_ECC系统服务发布与调用

    在 SAP ECC 系统中,Web Service 可以用来发布和调用服务,实现系统之间的集成和数据交换。发布 Web Service 服务可以让其他系统调用 SAP ECC 系统的功能和数据,而调用外部异构系统发布的 Web Service 服务可以让 ...

Global site tag (gtag.js) - Google Analytics