SlideShare a Scribd company logo
Spring Integration:
from XML configuration
to Java DSL
Agenda
● Enterprise Application Integration
● Message-oriented middleware
● Spring Integration framework (SI)
● SI Java DSL
– Advantages
– Disadvantages
● Conclusions
whoami
Andriy Kryvtsun
● Senior Software Engineer
● 15+ years Java experience
andriy_kryvtsun@epam.com
@akryvtsun
Enterprise
Application Integration
(EAI)
● What?
● Where?
● When?
EAI styles
File Transfer Shared Database
Remote Procedure
Invocation
Message-oriented
middleware (MOM)
MOM components
● Messages
● Channels
● Endpoints
● Transformations
● Routing
● Configuration
EAI Patterns
Coffee Shop Example
cafe orders order splitter drinks
drinks
router
cold drinks
hot drinks
cold drinks serving
hot drinks serving
prepared drinks
order
aggregator
deliveries
MOM implementations
Spring Integration
Mule ESB
Spring Integration
● Founded at 2009
●
Lightweight routing and mediation framework
● Low level DSLs
● Tight integration with others Spring projects (Spring
DI, Spring XD, Spring Cloud etc.)
DSL types in Spring Integration
● Founded at 2009
● Implements big set of EIPs and endpoints
● Has around 70 contributors
● 8000+ commits in GitHub repo
● The last commit date Apr, 2016
● Founded at 2014
● Implements big set of endpoints and EIPs
● Java 8 lambda support
● 154 commits in GitHub repo
● The last commit date Apr, 2016
● Founded at 2012
● Implements only few endpoints (jms, http, amqp)
● Has 69 commits in GitHub repo
● The last commit date Feb, 2016
● Founded at 2012
● Implements few base endpoints (jms, http, file, jdbc etc.)
● Has 220 commits in GitHub repo
● The last commit date Jun, 2013
XML and Java DSL
Demo
Numbers Polling
Consumer
Even
Numbers
Filter
Header fields
Enricher
Wire Tap
Output
Number to
String
transformer
File Output
Even Numbers Processor
Java DSL
Advantages
● expressiveness
● strict types
● compatibility with Java 8 lambdas, Spring Java DSL
and Spring Boot
Java DSL
Disadvantages
Header fields
Enricher
Wire Tap
Output
Number to
String
transformer
File Output
FTP OutputNumber to
String
transformer
Numbers Polling
Consumer
Even
Numbers
Router ‘TRUE’
‘FALSE’
Prime
Numbers
Filter
Even and Prime Numbers Processor
1. Verbosity
1. Verbosity
Solution
- flow splitting
- bean logic encapsulation
2. Limitation
Header fields
Enricher
Wire Tap
Output
Number to
String
transformer
File Output
FTP Output
Number to
String
transformerNumbers Polling
Consumer
Number
Type
Router
JDBC Output
Even
Number
Channel
Prime
Number
Channel
Palindrome
Number
Channel
Null
Channel
File Name
Enricher
2. Limitation
Solution
- use hybrid configuration
- do it yourself
Repositories structure
Conclusions
References
● 'Enterprise Integration Patterns' book by Gregor Hohpe
– http://www.enterpriseintegrationpatterns.com
● 'Spring Integraion in Action' book by Mark Fisher, Jonas Partner
● http://projects.spring.io/spring-integration
– https://github.com/spring-projects/spring-integration
● Stack Overflow 'spring-integration' tag
http://stackoverflow.com/questions/tagged/spring-integration
Questions
Ad

Recommended

PPTX
Spring integration with the Java DSL
Ben Wilcock
 
PDF
quickguide-einnovator-11-spring-integration
jorgesimao71
 
PDF
Onion Architecture and the Blog
barryosull
 
KEY
S2GX 2012 - Introduction to Spring Integration and Spring Batch
Gunnar Hillert
 
PDF
SpringPeople Introduction to HTML5 & CSS3
SpringPeople
 
PDF
SpringPeople Introduction to JAVA Web Services
SpringPeople
 
PPTX
Coordinating Micro-Services with Spring Cloud Contract
Omri Spector
 
PPT
Spring Integration
Srinivas Kumar R
 
PDF
Enterprise Integration Patterns with Spring integration!
hegdekiranr
 
PPTX
Messaging with Spring Integration
Vadim Mikhnevych
 
PPTX
Spring integration
Dominik Strzyżewski
 
PDF
Spring integration
Oliver Gierke
 
PDF
Welcome to New Swift: Library Evolution & LSP Support
G ABHISEK
 
PDF
SpringPeople Introduction to Mule ESB
SpringPeople
 
PPTX
Integration Patterns With Spring integration
Eldad Dor
 
PDF
Introduction To Perl - SpringPeople
SpringPeople
 
PPTX
ASP.NET Core Demos Part 2
Erik Noren
 
PPTX
ASP.NET Core Demos
Erik Noren
 
PPTX
Apache kafka
Degendra Sivakoti
 
PDF
MuleSoft Surat Virtual Meetup#30 - Flat File Schemas Transformation With Mule...
Jitendra Bafna
 
PPT
An introduction to Apache Camel
Kapil Kumar
 
PPTX
Muletransformers
vijaynerd
 
PPTX
Dependency injection presentation
Ahasanul Kalam Akib
 
PPTX
A-Brief-Introduction-To-JAVA8_By_Srimanta_Sahu
Srimanta Sahu
 
PDF
Zeppelin meetup 2016 madrid
Jongyoul Lee
 
PDF
Api chaining(tm)
Owen Rubel
 
PPTX
Spring integration
Zülfikar Karakaya
 
PDF
Developing Url Shortener With Dynamic Behaviour Using AWS Lambda
mitesh_sharma
 
PPTX
Code generation with javac plugin
Oleksandr Radchykov
 
PPTX
Introduction to Kafka with Spring Integration
Borislav Markov
 

More Related Content

What's hot (20)

PDF
Enterprise Integration Patterns with Spring integration!
hegdekiranr
 
PPTX
Messaging with Spring Integration
Vadim Mikhnevych
 
PPTX
Spring integration
Dominik Strzyżewski
 
PDF
Spring integration
Oliver Gierke
 
PDF
Welcome to New Swift: Library Evolution & LSP Support
G ABHISEK
 
PDF
SpringPeople Introduction to Mule ESB
SpringPeople
 
PPTX
Integration Patterns With Spring integration
Eldad Dor
 
PDF
Introduction To Perl - SpringPeople
SpringPeople
 
PPTX
ASP.NET Core Demos Part 2
Erik Noren
 
PPTX
ASP.NET Core Demos
Erik Noren
 
PPTX
Apache kafka
Degendra Sivakoti
 
PDF
MuleSoft Surat Virtual Meetup#30 - Flat File Schemas Transformation With Mule...
Jitendra Bafna
 
PPT
An introduction to Apache Camel
Kapil Kumar
 
PPTX
Muletransformers
vijaynerd
 
PPTX
Dependency injection presentation
Ahasanul Kalam Akib
 
PPTX
A-Brief-Introduction-To-JAVA8_By_Srimanta_Sahu
Srimanta Sahu
 
PDF
Zeppelin meetup 2016 madrid
Jongyoul Lee
 
PDF
Api chaining(tm)
Owen Rubel
 
PPTX
Spring integration
Zülfikar Karakaya
 
PDF
Developing Url Shortener With Dynamic Behaviour Using AWS Lambda
mitesh_sharma
 
Enterprise Integration Patterns with Spring integration!
hegdekiranr
 
Messaging with Spring Integration
Vadim Mikhnevych
 
Spring integration
Dominik Strzyżewski
 
Spring integration
Oliver Gierke
 
Welcome to New Swift: Library Evolution & LSP Support
G ABHISEK
 
SpringPeople Introduction to Mule ESB
SpringPeople
 
Integration Patterns With Spring integration
Eldad Dor
 
Introduction To Perl - SpringPeople
SpringPeople
 
ASP.NET Core Demos Part 2
Erik Noren
 
ASP.NET Core Demos
Erik Noren
 
Apache kafka
Degendra Sivakoti
 
MuleSoft Surat Virtual Meetup#30 - Flat File Schemas Transformation With Mule...
Jitendra Bafna
 
An introduction to Apache Camel
Kapil Kumar
 
Muletransformers
vijaynerd
 
Dependency injection presentation
Ahasanul Kalam Akib
 
A-Brief-Introduction-To-JAVA8_By_Srimanta_Sahu
Srimanta Sahu
 
Zeppelin meetup 2016 madrid
Jongyoul Lee
 
Api chaining(tm)
Owen Rubel
 
Spring integration
Zülfikar Karakaya
 
Developing Url Shortener With Dynamic Behaviour Using AWS Lambda
mitesh_sharma
 

Viewers also liked (12)

PPTX
Code generation with javac plugin
Oleksandr Radchykov
 
PPTX
Introduction to Kafka with Spring Integration
Borislav Markov
 
PDF
Java Configuration Deep Dive with Spring
Joshua Long
 
PDF
Java Generics: a deep dive
Bryan Basham
 
PDF
CQRS + Event Sourcing
Mike Bild
 
PPTX
Spring frameworkが大好きなおはなし
Satoshi Kisanuki
 
PDF
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Chris Richardson
 
PDF
A year with event sourcing and CQRS
Steve Pember
 
PDF
CQRS and Event Sourcing for Java Developers
Markus Eisele
 
PDF
REST APIs with Spring
Joshua Long
 
PDF
Microservice Architecture with CQRS and Event Sourcing
Ben Wilcock
 
PDF
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Chris Richardson
 
Code generation with javac plugin
Oleksandr Radchykov
 
Introduction to Kafka with Spring Integration
Borislav Markov
 
Java Configuration Deep Dive with Spring
Joshua Long
 
Java Generics: a deep dive
Bryan Basham
 
CQRS + Event Sourcing
Mike Bild
 
Spring frameworkが大好きなおはなし
Satoshi Kisanuki
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Chris Richardson
 
A year with event sourcing and CQRS
Steve Pember
 
CQRS and Event Sourcing for Java Developers
Markus Eisele
 
REST APIs with Spring
Joshua Long
 
Microservice Architecture with CQRS and Event Sourcing
Ben Wilcock
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Chris Richardson
 
Ad

Similar to Spring Integration: from XML to Java DSL (20)

PPTX
Cloudsolutionday 2016: Getting Started with Severless Architecture
AWS Vietnam Community
 
PDF
Dust.js
Yevgeniy Brikman
 
PDF
Introduction of A Lightweight Stage-Programming Framework
Yu Liu
 
PDF
Sap integration with_j_boss_technologies
Serge Pagop
 
PDF
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
PDF
AWS Lambda and Serverless framework: lessons learned while building a serverl...
Luciano Mammino
 
PDF
Introduction to Datasource V2 API
datamantra
 
PDF
Angular js best practice
Matteo Scandolo
 
PDF
Primavera gateway SAP provider - Oracle Primavera P6 Collaborate 14
p6academy
 
PDF
Evolutionary Design Solid
Xebia IT Architects
 
PDF
(ATS6-DEV02) Web Application Strategies
BIOVIA
 
PDF
Intro to SpringBatch NoSQL 2021
Slobodan Lohja
 
PDF
Introduction to Apache Beam
Knoldus Inc.
 
PDF
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
WSO2
 
PDF
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
ODP
ESB vs API management
AdroitLogic
 
PDF
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
Radovan Semancik
 
PDF
SAP Integration with Red Hat JBoss Technologies
hwilming
 
PDF
"Different software evolutions from Start till Release in PHP product" Oleksa...
Fwdays
 
PDF
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
Alexandr Savchenko
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
AWS Vietnam Community
 
Introduction of A Lightweight Stage-Programming Framework
Yu Liu
 
Sap integration with_j_boss_technologies
Serge Pagop
 
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
AWS Lambda and Serverless framework: lessons learned while building a serverl...
Luciano Mammino
 
Introduction to Datasource V2 API
datamantra
 
Angular js best practice
Matteo Scandolo
 
Primavera gateway SAP provider - Oracle Primavera P6 Collaborate 14
p6academy
 
Evolutionary Design Solid
Xebia IT Architects
 
(ATS6-DEV02) Web Application Strategies
BIOVIA
 
Intro to SpringBatch NoSQL 2021
Slobodan Lohja
 
Introduction to Apache Beam
Knoldus Inc.
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
WSO2
 
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
ESB vs API management
AdroitLogic
 
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
Radovan Semancik
 
SAP Integration with Red Hat JBoss Technologies
hwilming
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
Fwdays
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
Alexandr Savchenko
 
Ad

Recently uploaded (20)

DOCX
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
IFI Techsolutions
 
PPT
Complete Guideliness to Build an Effective Maintenance Plan.ppt
QualityzeInc1
 
PDF
How Automation in Claims Handling Streamlined Operations
Insurance Tech Services
 
PPTX
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
PDF
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
PPTX
Simplify Insurance Regulations with Compliance Management Software
Insurance Tech Services
 
PDF
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
PDF
Digital Transformation: Automating the Placement of Medical Interns
Safe Software
 
PDF
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
PDF
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
PDF
Which Hiring Management Tools Offer the Best ROI?
HireME
 
PPTX
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
PDF
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
PPTX
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
PPTX
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
PPTX
From Code to Commerce, a Backend Java Developer's Galactic Journey into Ecomm...
Jamie Coleman
 
PDF
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
 
PDF
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
PPTX
Sap basis role in public cloud in s/4hana.pptx
htmlprogrammer987
 
PDF
Automated Testing and Safety Analysis of Deep Neural Networks
Lionel Briand
 
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
IFI Techsolutions
 
Complete Guideliness to Build an Effective Maintenance Plan.ppt
QualityzeInc1
 
How Automation in Claims Handling Streamlined Operations
Insurance Tech Services
 
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Simplify Insurance Regulations with Compliance Management Software
Insurance Tech Services
 
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
Digital Transformation: Automating the Placement of Medical Interns
Safe Software
 
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
Which Hiring Management Tools Offer the Best ROI?
HireME
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
From Code to Commerce, a Backend Java Developer's Galactic Journey into Ecomm...
Jamie Coleman
 
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Sap basis role in public cloud in s/4hana.pptx
htmlprogrammer987
 
Automated Testing and Safety Analysis of Deep Neural Networks
Lionel Briand
 

Spring Integration: from XML to Java DSL