java自学网(www.javazx.com)-java论坛,java电子书推荐:《Spring Integration Essentials》简称SI
) R H. [! r+ |2 |- _) s7 _7 ijava电子书推荐理由:This book is intended for developers who are either already involved with enterprise integration or planning to venture into the domain. Basic knowledge of Java and Spring is expected. For newer users, this book can be used to understand an integration scenario, what the challenges are, and how Spring Integration can be used to solve it. Prior experience of Spring Integration is not expected as this book will walk you through all the code examples.适合初学者来学习spring integration 其实就是我们所说的esb框架与mule相似。! q* i1 G1 a3 X, x9 c
6 {: a Q, V, Y( m7 k$ V; T g作者:Chandan Pandey
. P, Z- k+ M1 P- z: w# @出版社:Packt Publishing5 O4 N% Z$ c/ {2 c
3 d+ v% z6 j0 d; _7 Q* T出版时间:2015-02-20
- N( R- T x' F5 D% J7 T! @. Q
+ @0 b/ Q/ C8 o8 O, m2 tjava电子书目录: Spring Integration Essentials
! ~5 Q$ |5 H4 z; x, a8 {( v Table of Contents( f4 m0 |" E3 G8 D, L
Spring Integration Essentials
2 W; H. N5 e, V0 ~. g Credits; _8 r$ `3 R; S3 S/ q: E+ P
About the Author5 ^+ s( ]; A k
Acknowledgments
7 k& Y4 D4 I, F, M2 Q0 s0 F About the Reviewers: t6 y9 Z! p3 u; h
Support files, eBooks, discount offers, and more
2 p e, @) p, L0 B- a: c% k# W Why subscribe?
; J4 z" r! ~4 D6 p Free access for Packt account holders: g c, p# l+ ~( `. h. U' l
Preface/ I9 C# c! ^7 m Q- L
How enterprise integration challenges can be solved
! c* }3 t4 C8 q- ^! l) {! a Who are the players?
! ]/ b4 `6 Y+ }) s Why Spring Integration?
' K$ V! u. \7 J. J. M, N What this book covers
0 F( [9 b. g/ z2 i. Y2 v What you need for this book
: H% i1 \ I3 X( c; ^ Who this book is for9 O9 V% L) q' T. \
Conventions/ V# B- p$ E5 l1 C
Reader feedback+ C% S1 L1 W" a" D
Customer support7 Q$ h/ W+ z! X- D; q# v7 h
Downloading the example code$ ^5 X, |6 p$ y `1 }( n" J
Errata
' M4 k; O- Y) w& y7 C8 @: t Piracy
4 {- L: ^- n; T: L' Z: |* M Questions+ ^3 [9 O1 ?1 [! V Q; H1 i% h
1. Getting Started
6 U6 V0 ?' R+ T8 N Setting up STS9 E5 S0 u+ b8 x! z+ y5 N
Creating your first project" J5 w: H( r4 S+ a1 [. S8 H- W
STS visual editor
6 C* F8 A$ f; O4 n Spring Integration Scala DSL
5 M9 t+ j5 K. x) `! Z+ o Summary
1 q/ `; {# j/ }- h* N/ m/ v7 g 2. Message Ingestion
+ j/ C1 T3 \4 `2 t' F4 i Working with message channels
* K0 ?! P( e, P& H# b Channel types; @0 v; Z: w( F3 U: C
Spring implementation of channels% }" Z) E9 Y h0 g7 a3 L
Selecting a channel
* G* N" c! Q6 d Publish-subscribe channel
s z1 l2 J) l9 @; k& h* E Queue channel& Z1 x3 h7 J! `( d8 F- k/ c$ I
Priority channel6 w+ y% [! E/ @+ o3 Q) L
Rendezvous channel T" I D; q; G O5 q8 C$ G
Direct channel& u6 b- }# O3 _( g6 t( J
Executor channel8 _. |8 L% T i: Z& I7 P
Scoped channel2 h% l! ]0 f( U! j/ G2 m
Datatype channel, y+ d' ^7 w( O' r
Error handling on channels
9 {' v& Y3 R. u, T3 j- h' a# C7 | Persisting and recovering channels
. Q6 l- q% P' [# N! @ Channel interceptors# P( O/ ?" ]! \$ X% a
Summary
2 o# v: z0 y% ~/ y4 N4 @8 w4 Q+ J 3. Message Processing! s8 ~% T" u: N# u" M R
Message endpoints
4 g4 G: k$ N U) W9 V1 {. X Gateways
) W) y5 q9 ?0 U# e; ]# i/ O8 t Synchronous gateways* w3 e7 y) l0 \1 O( N
Asynchronous gateways2 Z7 N2 f5 v8 _; j. n
Service activators) a% }( r: o# w( D* a1 w, a1 E( b7 \
Delayers
, {7 K7 X& l% A' _% U7 S Transactions
5 _$ j* \" {6 Z, Z& G. b, M Summary
. @2 t b* T$ R) d) V/ j 4. Message Transformers0 v1 A! A- X: }
Introducing message transformers( M% U5 }, Z+ I w/ p
Working with XML payload: y& E# l8 O3 v: s$ |' I; ^8 ]
The marshalling transformer
. \2 x- R5 A. _# U2 R7 U. J! R4 g The unmarshalling transformer
. ?9 U7 R2 _1 Q* O* ^ XPath transformers
) w0 [$ A' C" e5 n" |! A Validating XML messages4 ~, a* R- E$ i
Beyond default transformers
+ j& Q. t5 B& Z% u/ { D9 d Content enrichers
2 D+ ? M8 j- S0 r8 }0 t Header enrichers
% u5 o. Q) t" o# P( k0 o+ M Payload enrichers
& V" r# C; n3 P$ h5 N0 `! s Claim check: y; Z: L+ l- [/ D; F; W3 G; V
Incoming claim check transformer& R$ l8 T- a! e1 \8 k. z, ?
Outgoing claim check transformer
4 q5 @1 {* r' C# Y- I- G Summary
, L& H# w9 A/ o u 5. Message Flow
( L6 i% z! c3 i6 `2 f& n- l/ I Routers O5 P7 y/ [) B2 V8 L4 ~
Payload-type router* I) `; Y, P5 n4 w( N# m+ R
Header value router; e+ o/ f5 ]& P
Recipient list router2 F* N0 K5 N- N9 f- x7 C
XPath router
' d P- ?. I$ a! I- a9 I7 F1 v, z1 y2 L Error message exception-type router6 y' R* u' Q5 \7 F1 Z
Default output channel
# J- e! l8 l7 N) @2 J' Y z/ Y* `* U Using annotations
2 v6 \) B! H6 O6 d5 T) \ Filters! R' A5 r1 c+ T9 E+ t$ p+ K4 s' ^, j
Using a Java class to act as a filter
) n& O& f1 A2 t6 T% \; R Configuring a filter as a message endpoint
$ W) ? e: o/ d3 E9 D! L% {3 W6 ` Splitters5 Q& j) A- w E, t1 o
Aggregators
+ f! P5 H: G8 H Correlation strategy; ?) P$ o- J& d9 X
Release strategy
' m, F. }8 v! v8 u Message store
0 o/ N" B y3 l! l# m$ f, o& ^ Resequencers7 k9 [% h1 P5 U) k* A
Chaining handlers
2 C1 D+ S" e$ j e/ U0 L8 e' q Summary* Y! _ O# D1 r9 r6 e
6. Integration with External Systems
- i& f5 ? r' S Working with files9 f. h+ [) ~4 z H j
Prerequisites& R) P8 A. P; H6 O& M0 F3 _6 d$ ^
Reading files* B* T$ \5 x# d8 b/ b3 A7 I
Behind the scenes
0 u+ C G9 a7 m4 q Filters2 h8 Z$ { g+ K
Preventing duplicates
2 ?' G/ ~! c E/ Y) d0 n+ X. V Concurrent access
. y) F/ s! @1 L. ] Writing files
& f' T0 v( a8 ~2 n& K, `( r' M1 P Naming the file
& W1 A9 {2 { @0 `6 L Target directory
$ C# E; [! F- ? Dealing with existing filenames
( b0 e& o8 d0 X( j9 `: v. Z File transformers
6 Y6 n n9 ^9 e% F6 S' z8 c5 Z FTP/FTPS
/ y4 @) h+ I: K" V( |) V. T4 ? Prerequisites( D# X+ M" N$ \8 V
Downloading files from the FTP server4 E3 T$ \3 {9 H6 B" W
Incomplete files
8 `+ ~4 w4 O* a. v Uploading files to the FTP server
! s8 {( O# \# I/ y Avoiding partially written files
" O. N: }+ p/ I8 L- |- i$ z! n FTP outbound gateway
5 N, E) `% H! _8 ^) C% L1 W2 g. m FTPS support2 Q8 O+ F C5 _1 ^" z* t( ?
Social integration
9 F% n. k8 ` z: X, A6 C Prerequisites
2 B) x3 N% P& U+ E! V3 j% `2 x Receiving tweets
7 v6 q' z7 [; j" I Sending tweets1 i i- U/ m* u7 y, t4 q
Twitter search outbound gateway
. j) a/ l0 {. G Enterprise messaging6 G9 Z: X* z5 ?- l7 n
Prerequisites
4 U! h6 [% N6 O# v9 } Receiving messages – the inbound adapter
3 S- Y! N/ y( ~3 D6 H2 b+ o3 W The polling adapter
7 X- r1 x5 a. g* w2 n The event-driven adapter" p0 q; |+ j9 S. X2 w
Sending messages – the outbound adapter" f2 a9 F- L+ M2 {4 S" {' O1 t
Gateway
% \! d) G F, M1 [( s The inbound gateway' _1 h' O% D7 j" @$ c3 i% H) o
The outbound gateway
( u3 S) {/ I% t; G HTTP
: f8 _1 a% k1 U+ G7 R6 H Prerequisites A( R: a* A& J! X% Z1 W
The HTTP inbound gateway
- z, e8 |0 `7 p7 } The HTTP outbound gateway+ J, N& P- g7 |8 L7 U/ y$ f, J
Web services; B1 W! u* ]7 C
Prerequisites+ R* c. ?% |5 m, y1 z0 z
The inbound gateway0 K& z t2 F7 C8 J
The outbound gateway; J s, n8 F! N4 Q
Database SQL
$ G3 b! H& h. N; }4 t) _) n Prerequisites
& U+ s0 ?0 Z7 y: D W+ n& i# j/ I2 C Datasource
6 d! V L4 s2 S/ N- j Reading from the database – the inbound adapter
+ A. M0 q: f3 {) C8 c9 b, m Transaction support8 ^9 w0 q# a3 e5 D" g$ R7 ]
Writing to the database – the outbound adapter) Q( H2 P( A" R) h
Inbound and outbound gateways1 e' h$ J$ ?% |2 }
Stream processing9 M t2 ^1 S( _8 y ]4 Z1 b
Prerequisites. p+ |9 x6 k9 E8 i R+ Z
Reading from a stream
/ i# i( _5 v6 U3 \ Writing to a stream- Z' m+ ~! |( L
Summary. [: Y" O" K+ y
7. Integration with Spring Batch
. |. T# B* R6 e% q, o Spring Batch
9 O- ]4 `9 m; [) |, X Prerequisites
% H: }( h8 k7 g, K% L3 E7 @! A Defining a Spring Batch job
4 T8 E1 C( X6 l1 { The Spring Batch job language
% z; T4 D$ U4 t, k ItemReader5 M) i5 k4 Z* k$ k( F7 \; {9 o
ItemWriter
h4 R) g8 w$ T! C Spring Batch and Spring Integration5 }8 O3 `6 O1 W0 ?1 J$ i0 \
Launching the job+ x6 s9 \. y8 l0 ]: Q
Tracking the status of a batch job
6 H& |5 {! C% M) v& I: h _" J The other way round
$ F" V, {& i8 m# Z0 m- x$ @( ?1 h- ` Summary
* u& n4 B/ P: _; H1 l! q0 L9 _! [- E 8. Testing Support
- ?( e9 w, s" W0 u3 I. p Prerequisite$ f. A( x4 }" M" N3 O6 M
Testing messages
, h' T" R6 U9 W) v Testing headers" S& [" T3 ~. z+ Q) L
Handling errors
1 L4 ~6 m a ^' z# |5 p. ?- x Testing filters
& z; v3 |! k* u9 a% c$ `+ g# ]; y Splitter test
0 ?: t. y, }' w" _5 V+ @" j Summary
# g, O4 s6 b N: p: ]" ] 9. Monitoring, Management, and Scaling Up
) j" V5 j( h0 P. @4 z5 J Monitoring and management
) \, U. W& h: H8 d3 ^: Q JMX support! X7 S3 z0 K# f2 ?
Prerequisites
, H: ]. f9 B! s4 m4 W. f6 p The notification listening channel adapter
8 [( `' \: y3 L6 h F( } The notification publishing channel adapter
( [" l! ~, i! ~0 h The attribute polling channel adapter
$ n6 E- k5 f: |# |4 P* ^' a# z The tree polling channel adapter
4 O# i, V% l$ h; s$ h The operation invoking channel adapter/ A2 X" Y0 m+ B2 O, y- e, w. Z
The operation invoking outbound gateway
4 [/ \7 B: P' e8 T. o3 k The MBean exporter
, f- S! s1 }5 v6 B Tracking the message: m; x+ C( }2 H
Wire tap
j h: R# \6 j" D } Control bus
5 V# d8 b! Q) g8 u- A0 s1 e& U Scaling up5 z3 |* G( K. E
Threading: H2 W1 r0 q6 t6 k9 @, k9 i- c
Scaling the state
" A, e D3 `1 }. k Message store1 f: `" t5 C0 k o; L3 [
Claim check
% x) [; Z* E) G/ R% { Summary
* I5 I6 T- Q9 P, S" |& x 10. An End-to-End Example& e& _# H$ b* Z0 _ i' e9 g+ ~
Prerequisites
- A. p6 D8 h, w) O, Y Setting up
9 A3 T! b# C" c% x/ q1 B Ingesting data
7 ]1 v, p. ^& p+ ]- F Ingesting data from the RSS feed
+ |: d8 F5 P1 z1 A1 y Ingesting data from an FTP server
1 c& `7 C# H8 Y U Filtering the data# u' K+ Q/ U+ g. ^, x
The aggregator
- ?: k0 C3 Q0 |" `/ ` The correlation bean, Y# ^8 q: ]. R: `& @
The completion bean
3 Z5 \ B+ c9 [+ C: g8 t4 u The aggregator bean" S2 F3 D8 ]% A/ o% P) A
The splitter
5 B* q6 G1 ]* P5 ]7 q Transformation
7 \- a& O! Q, T& y% N |, s The DB transformer
* a0 }% Y$ | j9 I* p% D3 c. n' K The JMS transformer
( ]# @. z3 w& {/ a; J2 k2 R The mail transformer. D2 t8 P$ \6 b( w6 E$ Z6 I7 q5 k- p/ t
Router
t1 s( s D6 q Integration# ^5 N7 j6 F% m
Database integration
% |) W' o/ L# n( w" E( I8 y$ y* c& M Prerequisites
1 X. M3 F& M! G q* y4 w, K2 o The gateway( N. Y ~ l2 B, T8 S8 H p
The service activator7 I$ C% g7 z: ?: I) ^1 ^7 X
Gateways for updating and reading the feeds( f0 j& M3 d0 }6 e' o
Sending a mail9 [8 N5 Q! [- L* A& O( c4 W: ^
Putting messages on to the JMS queue
2 O j0 ]; ]2 J* u2 f Exporting as an MBean& I, J# ?* E' u' G9 R5 @7 ?9 M! A
Summary& p) M- @$ }+ ~8 r
Index
2 Q& a; U7 o, F1 r! ]
. D: i- }2 g! l2 r
$ M; S$ B5 g. d% M A |