Java Component
参考Mule的用户开发手册,component分为三类:Simple Components、Java Components、Other Components。《Mule ESB的component(二)》涉及了Simple Components和Other Components(没有详细介绍),这篇将介绍Java Components,也就是我们常说的自定义Components。
1. 示例:
Java Components主要处理业务逻辑,它通过实现Mule不同的接口,从而提供符合业务逻辑的方法入口,其中org.mule.api.lifecycle.Callable和org.mule.api.component.LifecycleAdapter:
* org.mule.api.lifecycle.Callable 仅有一个方法onCall(eventContext),顾名思义它是在service被调用时进入该方法;
* org.mule.api.component.LifecycleAdapter 针对org.mule.api.lifecycle.Lifecycle接口进行了扩充,实现LifecycleAdapter需要实现invoke、isDisposed、isStarted、initialise、start、stop、dispose等方法,这些方法即一个请求的生命周期。
2. entry point
当你需要特定的请求进入指定的component时,entry point将会帮助你。
Mule提供的entry point:array-entry-point-resolver、callable-entry-pointresolver、method-entry-pointresolver、no-arguments-entry-pointresolver、property-entry-pointresolver、reflection-entry-pointresolver、custom-entry-pointresolver
entry point常用子元素:exclude-object-methods、exclude-entry-point、include-entry-point
当Component没有设置entry point时,Mule会使用默认的配置(第三条和第四条没看懂,原文奉上),Mule in action中写到这个配置很复杂,原因是为了兼容Mule 1的版本:
■ A property-entry-point-resolver
■ A callable-entry-point-resolver
■ A reflection-entry-point-resolver configured to accept setter methods(they’re normally excluded)
■ A reflection-entry-point-resolver configured to accept setter methods and with transformation first disabled
entry point的具体使用不在此处介绍,首先是因为api文档比我的英文水平好多了,其次是一段话:
At this point, you might feel overwhelmed by the versatility of the entry point resolution
mechanism. The best hint we can give you at this point is not to overengineer your
configuration with armies of finely tuned entry point resolvers. Rely first on the default
set that Mule uses and add specific resolvers only if it’s not able to satisfy your needs.
这段内容大概意思是,读者可能会对大量的entry point感到不知所措,作者给出的最好建议是:先使用默认的配置,除非它不满足你的需要。
3. 配置component
Mule支持spring和mule的两种方式配置:
使用Mule配置:
spring配置 :
4. 使用池进行负载
以下两种情况可以使用池:
* 创建组件会消耗大量的资源
* 组件是非线程安全的
池属性配置:
name |type | required | default
manxActive |String | no |
maxIdle |String | no |
initialisationPolicy |NITIALISE_NONE | no | INITIALISE_ONE
INITIALISE_ONE
INITIALISE_ALL
exhaustedAction |WHEN_EXHAUSTED_GROW | no | WHEN_EXHAUSTED
WHEN_EXHAUSTED_WAIT
WHEN_EXHAUSTED_FAIL
maxWait |String | no |
5. component的扩展
component binding可以将一个接口(interface)的代理注入到component,从而实现component与Mule API的解耦。
6. component交互总图
- 大小: 60.8 KB
- 大小: 78.4 KB
- 大小: 46.4 KB
- 大小: 73.3 KB
分享到:
相关推荐
- 许多知名公司如沃尔玛、惠普、索尼、德意志银行和花旗银行都在使用MuleESB。 4. **Mule ESB的安装与配置** - MuleESB有两个版本:社区版和企业版。社区版免费,适合初学者和小型项目;企业版提供了更多高级...
### MuleESB3.0中文教程知识点梳理 #### 一、Mule ESB 3.0概述 - **定位**:Mule ESB 3.0是一款轻量级的消息框架和整合平台,旨在帮助企业轻松地集成不同的系统和服务。 - **核心特性**:基于EIP(Enterprise ...
Mule ESB(Enterprise Service Bus,企业服务总线)是一种基于Java的轻量级集成平台,专为快速、简单地连接应用程序和数据转换而设计。它提供了多个关键功能,包括服务创建与管理、服务调解、消息路由和数据转换。 ...
### Mule ESB Studio安装使用手册 #### 一、初级教程概述 Mule ESB Studio是一款功能强大的集成开发工具,用于构建基于Mule ESB(Enterprise Service Bus)的应用程序和服务。Mule ESB是一个广泛应用于企业级应用...
如果多个MULE应用共用某些JAR包(如第三方开源库),则可以将这些包放入MULE服务器的`lib\boot`目录供所有应用共享使用。 - `mule-config.xml` 是MULE服务的默认编排配置文件。若存在多个编排XML文件,则需要通过`...
Mule ESB广泛支持各种企业技术,包括但不限于Java、.NET、SAP、Salesforce、Oracle、IBM WebSphere、Microsoft BizTalk等。此外,它还支持云服务集成,如AWS、Azure和Google Cloud。Mule ESB的灵活性使得它能够轻松...
标题 "mule进阶之ibatis component" 指向的是一个关于Mule ESB集成iBatis组件的高级主题。Mule ESB是一个企业级的集成平台,它允许开发者轻松地连接各种系统和应用程序。iBatis则是一个SQL映射框架,它可以将Java...
#### 三、Mule ESB 的基本概念 ##### 3.1 Model - **定义**:Model 表示托管各个服务的运行时环境。 - **作用**:提供统一的环境支持,使得服务能够在一致的上下文中运行。 ##### 3.2 Service - **定义**:Service...
#### 三、Mule 架构 - **Transport(传输层)**:由多个组件构成,负责消息的发送和接收。 - **Connector(连接器)**:负责发送和接收消息的具体操作。 - **Endpoints(端点)**:消息的发送点和接收点。 - **...
Mule is the leading open source Java ESB. It borrows from the Hohpe/Woolf patterns, is lightweight, can publish REST and SOAP services, integrates well with Spring, is customizable, scales well, and ...
- **定义**:JBI是一种针对Java领域的ESB规范。 - **作用**:定义了一套管理和监控ESB组件的标准模型(JMX),以便更好地控制ESB中的服务交互。 - **区别**:ESB通常指代的是实际的产品或解决方案,而JBI则更偏向于...
- **XML 文件结构**:介绍 XML 文件的基本结构,包括根元素 `<mule>` 和其他关键元素如 `<flow>`、`<component>` 等。 - **属性和参数**:讲解如何在 XML 文件中设置不同的属性和参数,以实现更灵活的配置选项。 ...
2. **组件(Component)**:处理业务逻辑的核心部分,可以是自定义组件或预定义的 Mule 组件。 3. **消息转换器(Transformer)**:用于转换消息格式,确保消息能够在不同系统间顺畅传递。 4. **流控制器(Flow ...
- **图形化创建Mule ESB流程**:新手或非专业Mule开发者可以通过拖拽组件来创建复杂的ESB流程。 - **XML与图形界面切换**:有经验的Mule开发者可以在图形界面和XML编辑器之间自由切换,这有助于更好地理解和维护Mule...
Mule ESB是一种集成平台,用于构建连接不同系统和服务的应用程序。Mule的配置文件采用XML格式,组织成一棵XML元素树,其中包含了对服务、路由、转换器等关键组件的定义。 #### 二、基本标签及功能介绍 ##### 1. `...
Mule 2.0是一个重要的版本更新,它不仅为开发人员提供了更加强大、灵活的服务总线(ESB)配置能力,还通过引入Spring框架进一步提升了其在Java企业版(J2EE)环境中的兼容性和易用性。本文将详细介绍Mule 2.0的关键...