? ? ?
Web API Persistence
Flexible
business
logic
Integration in
an existing
environment
Slide 6
Slide 6 text
Spring Projects
Grails
Batch
Data Commons
Data JDBC Extensions
Data Neo4J
Data Solr
for Apache Hadoop
Integration
Mobile
Security Oauth
Social Facebook
Web Services
Reactor Project
Boot
Data Gemfire
Data JPA
Data Redis
Flex
Framework
IO Platform
Roo
Shell
Social Twitter
XD
AMQP
Cloud Connectors
DATA JDBC Extensions
Data MongoDB
Data REST
for Android
HATEOAS
Security
Social
Web Flow
Slide 7
Slide 7 text
Spring
Framework
Spring
Data JPA
Spring
Integration
Slide 8
Slide 8 text
Spring Integration
Promote loose-coupling between
components. The Message Channel
plays an important role in that
producers and consumers do not
have to know about each other
Slide 9
Slide 9 text
http://www.eaipatterns.com
Enterprise Integrations
Patterns
Spring Integration is aligned with
Message
Send it
Use it Transform it
Route it
channel channel channel
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
Generate an alert and store it on
the filesystem
Development
Slide 12
Slide 12 text
Development
public class Generator {
public Alert generate(Context context) {
return new Alert(context);
}
}
public class Filestore {
public void store(Alert alert) {
FileUtils.save(alert);
}
}
Slide 13
Slide 13 text
Customer 1
Generate an alert and send it
using a push API
Slide 14
Slide 14 text
Generate an alert, push it and
store it in the database
Customer 2
Slide 15
Slide 15 text
asynchronous made easy
channel as a Java method
Highlights
Slide 16
Slide 16 text
Direct channel (FIFO),
generator and pushapi run in the same thread
Publish Subscribe channel,
generator and pushapi run in separate threads
asynchronous made easy
Slide 17
Slide 17 text
Aggregator to wait for the asynchronous tasks to
complete or timeout
asynchronous made easy
Slide 18
Slide 18 text
public class MyUnitOfWork {
private MyService service;
public String generate(String message) {
return service.render(message);
}
}
public interface MyService {
String render(String message);
}
channel as a Java method
Spring to provide
the implementation
Slide 19
Slide 19 text
Demo
Slide 20
Slide 20 text
Rich set of endpoints
AMQP, File, FTP, Gemfire, HTTP, Mail, JDBC, JPA, JMS, MongoDB,
REDIS, RMI, TCP, UDP, Websocket and more
Pay attention to Transactions'
scope when using asynchronous
channels
Summary
Slide 21
Slide 21 text
Configuration can be verbose
Spring Integration Java DSL released
Refrain from over engineering
channels and endpoints
Balance flexibility and readibility
Summary