关闭

春天集成

5.4.6

扩展Spring编程模型以支持众所周知的企业集成模式。Spring Integration在Spring基应用中启用轻量级消息,并通过声明适配器支持与外部系统的集成。这些适配器提供更高级别的抽象,对春天的支持,对远程处理,消息和调度。Spring Integration的主要目标是为构建企业集成解决方案提供一个简单的模型,同时保持对生产可维护,可测试代码至关重要的关注。

介绍

使用Spring框架鼓励开发人员使用接口编写代码,并使用依赖注入(DI)来提供一个Plain Old Java Object (POJO),其中包含执行任务所需的依赖项。Spring Integration将这个概念更进一步,其中pojo使用消息传递范式连接在一起,单个组件可能不知道应用程序中的其他组件。这样的应用程序是通过组装细粒度的可重用组件来构建的,以形成更高级别的功能。通过仔细的设计,可以对这些流进行模块化并在更高的级别上重用。

除了将细粒度组件连接在一起之外,Spring Integration还提供了多种通道适配器和网关,用于与外部系统通信。通道适配器用于单向集成(发送或接收);网关用于请求/应答场景(入站或出站)。要获得适配器和网关的完整列表,请参考参考文档。

Spring云流项目构建了Spring集成,其中Spring集成用作消息驱动微猎犬的引擎。

特性

  • 大多数企业集成模式的实现

  • 终点

  • 频道(点对点和发布/订阅)

  • 聚合器

  • 过滤器

  • 变压器

  • 控制总线

  • ......

  • 与外部系统集成

  • ReST / HTTP

  • FTP / SFTP

  • 推特

  • WebServices(肥皂和休息)

  • TCP / UDP.

  • JMS.

  • rabbitmq.

  • 电子邮件

  • ......

  • 该框架具有广泛的JMX支持

  • 将框架组件公开为mbean

  • 适配器以获取MBeans的属性,调用操作,发送/接收通知

例子

在下面的“快速启动”应用程序中,您可以看到同一个网关接口被用于调用两个完全不同的服务实现。要生成并运行此程序,您将需要春天集成-WSspring-integration-xml如上所述的模块。

公共类主要{公共静态void main(String ... args)抛出异常{ApplicationContext CTX = New ClassPathXmlApplicationContext(“context.xml”);//简单的服务Tempconverter转换器= CTX.GETBean(“SimpleGateway”,TempConverter.class);system.out.println(转换器.Fahrenheittocelcius(68.0f));// Web Service Converter = CTX.GetBean(“WSGateway”,TempConverter.class);system.out.println(转换器.Fahrenheittocelcius(68.0f));}}
公共界面Tempconverter {Float Fahrenheittocelcius(浮动Fahren);}
< !——Simple Service——>     < int:链id =“wsChain输入通道”=“viaWebService”> < int:变压器表达式=”“& lt; FahrenheitToCelsius xmlns =“https://www.w3schools.com/xml/"祝辞& lt; Fahrenheit> XXX< / Fahrenheit> & lt; / FahrenheitToCelsius>“.replace(“XXX”,payload.toString())”/>      < / int:链>

这里是使用相同的应用程序(Web服务部分)使用Java DSL(和春靴)。你需要的春天启动启动 - 集成依赖或Spring-Integration-Java-DSL直接如果您不使用Spring启动。如果您使用Spring Integration启动版本5.0,您不需要任何其他依赖项 - Java DSL包含在核心项目中:

@configuration @springbootapplication @IntegrationComponentsCan公共类应用程序{公共静态void main(String [] args){configurableApplicationContext CTX = springApplication.run(application.class,args);tempconverter转换器= ctx.getbean(tempconverter.class);system.out.println(转换器.Fahrenheittocelcius(68.0f));ctx.close();@MessagingGateway公共界面Tempconverter {@Gateway(RequestChannel =“Convert.Input”)浮动Fahrenheittocelcius(浮动Fahren);@Bean公共集成流Flow转换(){return f  - > f .transform(payload  - >“”+“”+有效载荷+“”+“”).enrichheaders(h  - > h .header(webserviceheaders.soap_action,https://www.w3schools.com/xml/fahrenheittocelsius“)).Handle(new simplewebserviceoutboundgateway(“https://www.w3schools.com/xml/tempconvert.asmx”)).transform(transformers.xpath(“/ * [local-name()= \”fahrenheittocelsiusiusresponse \“+”/ *[local-name()= \“fahrenheittocelsiusiusiure \”)“));}}
Spring initializr.

QuickStart你的项目

引导您的应用程序Spring initializr.

文件

每个春天项目有自己的;它详细解释了如何使用项目特色你可以与他们一起实现什么。
5.4.6当前的遗传算法 参考文档。 API文档。
5.5.0-SNAPSHOT快照 参考文档。 API文档。
5.5.0-RC1pre 参考文档。 API文档。
5.4.7-SNAPSHOT快照 参考文档。 API文档。
5.3.8.BUILD-SNAPSHOT快照 参考文档。 API文档。
5.3.7.Release.遗传算法 参考文档。 API文档。
5.2.12.BUILD-SNAPSHOT快照 参考文档。 API文档。
5.2.11.RELEASE遗传算法 参考文档。 API文档。

指南

旨在完成15-30分钟,指南提供快速,实践指令建立起动器应用程序对于任何发展任务春天