12
返回列表 发新帖
楼主: jieforest

Spring Integration入门

[复制链接]
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
11#
 楼主| 发表于 2009-11-11 08:54 | 只看该作者
现在消息在emailsIn通道中传递,被传递到通道的下一个组件——转换器bean。转换器获取所有给它的内容,以某种方式改变消息(我们稍后会详细讨论这一点),然后顺便发送出去。这种情况下,会给Transformer给定一个包含MimeMessage类型有效负载的Message,转化器用于创建BlogPost类型的一个对象。BlogPost是我们系统特定的一个领域类。我们在这里把它作为DTO来用,但很显然,它来自哪里并不重要 ——如果你愿意,根据你的领域去处理它也可以。Transformer元素的最佳用法是:将消息格式转换为系统常见的格式。这跟标准数据模式相关。

由此产生的BlogPost封装在一条新消息中,其中包含原始消息的头信息。头信息正是你期望的那样:特定于请求的值,可以对其访问以获取更多的元数据。例如,从内部来说,Spring Integration总线给每样内容分配一个ID。该ID暴露为头信息值供你使用。该ID保证是唯一的。

然后消息被发送给过滤器emailsInFilterAgainstWhitelist,该过滤器访问有效负载获取发送者的值。这样做是为了确保在发布到博客的过程中你不会收到垃圾邮件。这个例子跟整个解决方案一样,简单的有些不合常理。你可以想象是去查询Spring安全或LDAP,或是比这个做得还要好的东西。见图5:

image5.png (14.45 KB, 下载次数: 3)

image5.png

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
12#
 楼主| 发表于 2009-11-11 08:55 | 只看该作者
XML配置的最后一段内容是service-activator元素,它获取所有给它的内容并进行处理。在这种情况下,我们告知Spring Integration调用ID为newBlogPublishingServiceActivator的bean的 pubishIncomignBlogEntry方法。该方法负责实际获取有效负载,并将有效负载发送给发布博客条目的服务。

然后我们就大功告成了。内容看起来很多,但实际上就是相关XML的四段内容。声明通道是为了讲清楚例子。poller元素只定义了一次,这样,上下文中需要轮询器的所有内容都可以利用这个缺省的轮询器了。

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
13#
 楼主| 发表于 2009-11-11 08:58 | 只看该作者
Spring Integration的不足之处

Spring Integration是全新且强大的。你可以对其背后的SpringSource的价值及其自身的不断发展抱有信心。但这并不意味着它是完美的——它离完美还远着哩!应用集成不是一个新的领域,考虑解决方案和架构已经有数十年。应用集成的一些用法按惯例包含了重量级的适配器,比如那些与SAP集成的集成方法或JDEdwards OneWorld。Spring Integration不能直接支持这些具体情况。

尽管Spring Integration支持大量开箱即用的功能,但它对一些典型的适配器缺少支持,比如SFTP、HTTPS或AS2。目前,一些专有的解决方案能更好地支持这些需求。有些解决方案非常昂贵,所以你可以为Spring Integration试着改造第三方库、编写自己的适配器。如果你有兴趣,你会因为为Spring Integration编写适配器相当简单而感到惊喜。你要想开始创建解决方案,只需要看看jSch[18]、Jakarta Commons VFS[19]或Jakarta Commons Net [20]。

最终,Spring Integration可能并不是你现在最佳的解决方案。如果不是,请不要担心。你在本文中学到的东西也能应用在其他方案中。来吧,集成!

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
14#
 楼主| 发表于 2009-11-11 08:58 | 只看该作者
结论

Spring Integration是一个干净、简练的EAI手段,也是很好的ESB产品替代者。现在的ESB方案沉重且很难引入到一些环境中。Spring Integration则是一个功能强大、低摩擦的替代方案,它能温和地解决一些最复杂的集成问题。

资源

1、Amazon.com上的《企业集成模式》
2、Spring Source的Spring Integration项目,http://www.springsource.org/spring-integration
3、企业应用集成中的“标准数据模型”,http://www.eaipatterns.com/CanonicalDataModel.html
4、JCA规范,http://java.sun.com/j2ee/connector/
5、BEA的Tuxedo产品,http://www.oracle.com/products/middleware/tuxedo/tuxedo.html
6、Mule主页,http://mule.mulesource.org/display/MULE/Home
7、Mule Forge,Mule扩展的铸造厂,http://www.muleforge.org
8、Apache ServiceMix,http://servicemix.apache.org/home.html
9、JSR 208,Java业务集成,http://jcp.org/aboutJava/communityprocess/final/jsr208/index.html
10、Blogger,Google的博客服务,https://www.blogger.com/start
11、Apache Roller,http://roller.apache.org/
12、JBoss.org的jBPM,http://www.jboss.org/jbossjbpm/
13、企业应用集成中的“聚合器”,http://www.eaipatterns.com/Aggregator.html
14、Dzone博客聚合器,http://www.dzone.com
15、JavaBlogs博客聚合器,http://www.javablogs.com
16、企业应用集成中的“接收者列表”,http://www.integrationpatterns.com/RecipientList.html
17、SMSLib,一个Java SMS库,http://smslib.org
18、jSch,http://www.jcraft.com/jsch/
19、Apache Commons VFS(Virtual File System,虚拟文件系统),http://commons.apache.org/vfs/
20、Jakarta Commons Net,http://commons.apache.org/net/
21、我的博客,http://www.joshlong.com

使用道具 举报

回复
论坛徽章:
131
乌索普
日期:2017-09-26 13:06:30马上加薪
日期:2014-11-22 01:34:242014年世界杯参赛球队: 尼日利亚
日期:2014-06-17 15:23:23马上有对象
日期:2014-05-11 19:35:172014年新春福章
日期:2014-04-04 16:16:58马上有对象
日期:2014-03-08 16:50:54马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
15#
发表于 2009-11-13 00:01 | 只看该作者
nice job

使用道具 举报

回复
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:37暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
16#
发表于 2012-3-18 17:54 | 只看该作者
翻译得真是挺好的。赞
有没有spring integration in action 的最新电子版本。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表