java自学网(www.javazx.com)-java论坛,java电子书推荐:《Spring Integration Essentials》简称SI
" v! Z( J1 ~4 B, j) r# ^5 [# ejava电子书推荐理由: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相似。3 M2 d* u& n: t% B0 o8 z
: q4 Z6 h" T# Z% i% k
作者:Chandan Pandey1 w0 B$ \ x0 \5 l# \, E- |) d, L
出版社:Packt Publishing
) e% k- p- z9 k5 W" C) t1 R. V Z- W+ i q5 Z! p$ w; C6 r3 b3 q7 {
出版时间:2015-02-20 + U4 o! {, V! c7 ~$ f" q* A
; X+ E _3 Y. v( Y9 pjava电子书目录: Spring Integration Essentials
7 H' s; U v: m D& N" R Table of Contents
& A: k5 B0 _! g( k! L# } Spring Integration Essentials6 k* \* V& @/ v8 {7 Y
Credits
9 z" d& g) F$ K# z About the Author* s9 j, a* t6 W5 ]* y
Acknowledgments! t I, B8 ]5 ^( k
About the Reviewers5 `6 T4 L8 h% `: L' }
Support files, eBooks, discount offers, and more
# @# i5 Z" h% K Why subscribe?
& R8 v/ r# y9 q7 U6 L) C Free access for Packt account holders/ _$ [, U2 Q" R, V
Preface" N" D8 J, X/ T2 h
How enterprise integration challenges can be solved6 f& b$ V0 J3 |) q. Q/ q
Who are the players?* S1 W: k! w+ [- Y
Why Spring Integration?# O9 y8 m; G1 K9 o0 k
What this book covers
) r% n) e0 H6 ^2 U What you need for this book
( p2 [& P1 ]6 ?/ L Who this book is for/ {& L$ s! s, h# z8 q6 I# Z
Conventions) Q' e/ `8 T- Z' E- P7 S% B
Reader feedback
/ B8 p2 D8 Z. s Customer support
! I0 X8 T; N# F+ X& h Downloading the example code
& p; S O+ \% J k Errata8 j* C: P- e4 {/ R
Piracy" _- C" F' b3 S
Questions' N+ e. R! N4 F
1. Getting Started( p9 d x0 a2 c4 j" u8 h6 I! S" L
Setting up STS5 J# E7 ^9 S; s% T+ d' G: M1 w( v
Creating your first project) t# P0 L" Y2 C# T' I& t
STS visual editor
( c: s; y1 |# v) }+ n- a; p* c# | Spring Integration Scala DSL& n* K5 R$ W# s7 F* [, T: Y
Summary
% W& E u0 u' ^4 P# Q 2. Message Ingestion
9 Q6 |/ O% O9 k6 q Working with message channels
; [+ N# p* d& V6 P, s Channel types9 V! u7 N7 r( H, @; W
Spring implementation of channels
' R: A& Z6 c" t/ a- j Selecting a channel- x0 r2 u( }3 q( d+ P- W
Publish-subscribe channel" U, @0 ~" }9 O
Queue channel
1 u; E& X# R9 ~+ k Priority channel
* A5 ]. L" m$ y# v* L6 I Rendezvous channel
6 }$ s9 z# r) s2 w Direct channel
/ ?7 \0 o8 C& L: U+ M Executor channel
( q# ~$ ~8 c7 |& w. u' `( v Scoped channel5 \% b1 [# D& Y
Datatype channel
$ B. p i3 w8 t# ]- E/ q+ u Error handling on channels
6 D: a# U( D) m0 `: M- A& f: z Persisting and recovering channels
9 C# y0 [" b4 U l [: w Channel interceptors1 M5 O5 G/ G5 M' r0 B* s o0 I
Summary
! o" G- a% P+ m$ l) y 3. Message Processing
# `$ J* L0 X1 l) U; d+ p Message endpoints
, X" Q9 R$ Y t7 j Gateways
+ }/ n2 @% l5 T1 m. N/ ^ Synchronous gateways( |% f) l9 y! W. O6 e
Asynchronous gateways# B: V* V( X! g
Service activators: K& z" s' Q1 j5 T! h* t
Delayers0 j- M( Y, f2 T) q6 q5 C& M; `
Transactions
" J. l6 k& h, z5 G Summary
- L1 V4 {8 V1 W o 4. Message Transformers
/ n: {8 E6 ^7 W6 w* z, { Introducing message transformers
3 G* N% p9 d! h$ h0 C Working with XML payload) p* w( e1 r$ T; ?3 @
The marshalling transformer
. J$ ?7 s2 U! E# u- m9 j- x The unmarshalling transformer
; ]( C2 B. ^% Y8 G0 C9 Y% z XPath transformers1 ?% C3 q Y# e6 `
Validating XML messages0 y. K! j( {2 ^
Beyond default transformers
* o* v: W7 w0 m7 d: ]! [* R: X% Y Content enrichers( [4 s- m9 s, x. T
Header enrichers4 ~3 [, K# z2 y$ h% L3 `( O F
Payload enrichers7 p5 S6 l* Z. O: I) V) w4 F
Claim check
8 F) _- ^% t) N: v Incoming claim check transformer
5 C( ~6 p4 {7 F Outgoing claim check transformer
$ J. I2 l- j M4 L0 Q Summary4 a# ~' ^2 G# w4 ]
5. Message Flow! p3 Z5 H4 \+ a2 Y
Routers! N# l! Z3 h. ?$ Y) K+ G
Payload-type router
6 o; r+ S, F1 S3 [ Header value router" k; |9 r6 c1 {8 W
Recipient list router
2 c) [. J% r7 E" T* o XPath router- t5 G* E0 k8 Q
Error message exception-type router' |" W6 ~* d% m& U3 X5 [
Default output channel
& Y0 h3 z1 P! R8 f4 }) y' j Using annotations7 k+ t+ ^' `$ [+ n3 i2 ]
Filters
; n+ w4 N& d! h* c Using a Java class to act as a filter4 D! N1 c7 H9 C/ o9 a% C
Configuring a filter as a message endpoint
0 h N1 D/ ]7 d# B. A p5 T Splitters y+ p* t; \1 q. t5 z
Aggregators, A& V' c0 I; H2 U, a1 z" J
Correlation strategy
7 z" f* K+ d8 M, P$ f7 Y+ [' b Release strategy
) b5 A; P1 ~4 ] Message store& R$ ?7 |! h: z7 T! I2 i; e9 b4 \/ A
Resequencers
! X" F5 E% @( B: G Chaining handlers
( F. B! `" L: {+ T) ] Summary9 l: y# C+ x' q& J9 I' p, e
6. Integration with External Systems! s9 e) {8 C& u, d
Working with files' [5 @+ M% O% o$ l( D
Prerequisites
( H9 E8 I$ \3 O6 M6 k1 Z. J Reading files
" i8 i3 [. k7 S$ I+ t- N Behind the scenes
: i7 e! }& h+ W" J- l+ e Filters
7 f4 h$ u( j; p, A- |2 _: z- Z Preventing duplicates
% i5 v9 I. u" Y A9 a$ l/ L8 c Concurrent access
w, F. Z+ g/ e' Y S* P7 [ Writing files
9 V% r" [' M3 {( Q Naming the file: C" L" N# s: m! w
Target directory7 m& r- _9 b$ }3 o1 p! Y" q
Dealing with existing filenames# m- ^: i4 E) S+ o9 a" ]$ t
File transformers
: |* P! o; v; c FTP/FTPS4 d8 `2 d6 U8 M3 l
Prerequisites
6 e( Q; K' h# @- ^( a$ R2 @7 p$ C Downloading files from the FTP server
+ b; Q* A5 J" h* n( S0 u5 l- v Incomplete files
" D" r( D/ e1 x: Y. \2 `6 }9 K Uploading files to the FTP server i- c- }2 s0 y- D
Avoiding partially written files: S& ^* e5 [- z; I% f" N
FTP outbound gateway# |1 [3 e8 g6 K6 C! @/ @! {" l
FTPS support
$ l, E+ n6 N0 ]+ [ Social integration
W1 ]' b* T6 T4 {7 F Prerequisites. X7 m! h2 [( q& l) |% H
Receiving tweets9 t: I7 n1 K- ]' r
Sending tweets
3 K0 c8 }# L' h* B Twitter search outbound gateway7 ?" V4 ]# T$ k' n* w! o
Enterprise messaging0 ^. R: [" ~) S1 A" A
Prerequisites/ x) D4 Q0 m) i2 Q0 X& o6 K
Receiving messages – the inbound adapter
7 i) U4 f0 [& p1 I1 T7 b The polling adapter" e" t9 Q& v" G3 c$ g
The event-driven adapter6 D# U/ ~5 q" ?% J
Sending messages – the outbound adapter
8 b2 b, l! i G* X8 W Gateway+ X" b8 x6 x' y7 A1 A1 ?2 F! ?: C
The inbound gateway2 f. h* W! L4 ~: R5 @
The outbound gateway+ A/ N" o+ e# u$ x
HTTP. q& _2 K3 O2 n( f& n; d
Prerequisites2 c! J2 M6 R1 G& C5 `1 c
The HTTP inbound gateway/ }' n. h2 ^8 [8 a* I. a. [
The HTTP outbound gateway
0 Y5 Y; G+ W- T6 v Web services+ V2 Q/ B# ~: W; z7 J9 ]8 O
Prerequisites' w2 ?: {0 @2 u* T `+ L3 t* E" d
The inbound gateway7 y4 o8 H1 x3 _- D9 L2 V: A+ O" w
The outbound gateway
3 Z4 _5 g" D5 w5 w3 G3 N Database SQL! p2 Z8 n; N3 P4 [% d
Prerequisites
7 i( l1 K: K6 } ]2 X3 R) l Datasource
; K: o( _+ W' O. x7 [4 T- Z Reading from the database – the inbound adapter8 r6 ~, q5 | Q( t* I& }9 c. f
Transaction support5 [. L( k5 B! \3 O$ s
Writing to the database – the outbound adapter
" s5 d3 G! L( G9 R; }% p4 o. M* V9 k Inbound and outbound gateways4 B* }9 p7 r, s1 O/ B6 Z- }
Stream processing8 T# ~% S$ l+ `1 J4 E
Prerequisites* s- I- f( Z/ i. I5 H5 R6 X& O
Reading from a stream
( P, F& d* k* F D: q- ]2 ~ Writing to a stream3 i# e; q% P4 `4 d5 V
Summary
8 [* Q9 E6 X' V( R 7. Integration with Spring Batch: M5 f; u1 ?3 ?0 M: H
Spring Batch
9 |& d' a! m9 K2 H8 j Prerequisites
2 o- j. a6 U1 o: n w5 Z: E. M8 C Defining a Spring Batch job
: i0 i' N9 M. [. T The Spring Batch job language
. m, {) z2 W ]% Z ItemReader
2 j# C" `, E5 o$ ` ItemWriter
% l7 D; M2 }4 U; P/ y/ l9 S' E Spring Batch and Spring Integration) C: C4 p. S# |
Launching the job) N, w1 O6 b M R
Tracking the status of a batch job% y% u! t. S1 ^- d# S3 S
The other way round
: f+ b* b& P6 B; p5 ~ Summary$ v# ^( f3 A/ r- A% s6 ~/ B
8. Testing Support( f: {' I3 `# u( B( L# \4 i) ^
Prerequisite _, Z: X: ]4 v ^) n+ a o
Testing messages
& Y% h4 L* e1 @0 U Testing headers
9 ^ s0 b Y! V' B' F& i Handling errors) R d" o' w9 M }+ q8 M( y
Testing filters7 l% X9 r$ F; m4 Y* b
Splitter test
0 z' n2 _5 c* o4 z# |6 S; C Summary, Z. U8 Z4 C1 b8 o4 l/ y
9. Monitoring, Management, and Scaling Up1 S" o+ b1 E7 t5 G+ z7 J
Monitoring and management
& _; a/ `, B% X9 G9 J# l JMX support: a& W( G( N' E; I$ A
Prerequisites
3 x7 n6 O. H7 Q The notification listening channel adapter
8 T# n# e( ~6 x/ j The notification publishing channel adapter) f& _5 v8 b) X- E3 d v
The attribute polling channel adapter# Q2 E6 i" z' ]# ~8 P0 @. l
The tree polling channel adapter% @. V- O) b$ n5 R
The operation invoking channel adapter
- y: b: O5 b+ j1 R0 @ The operation invoking outbound gateway! y+ u* v- L* H
The MBean exporter* M4 ]: i) x8 B
Tracking the message" K8 g1 q) l; p( [0 w9 ^
Wire tap
1 l) M9 ~) S7 d+ H8 K; b! B, s* k Control bus
9 J+ U/ v5 X! B Scaling up5 f) Z/ z1 V4 Z+ o3 M& o6 A
Threading
1 e, x( W1 s0 b2 I' _4 E9 A Scaling the state5 y& G9 u- K6 d$ @$ T
Message store8 O4 |% G- t7 @( v0 f( Q/ e( ]' m
Claim check
9 M1 o9 ?1 a# \( F0 Y1 B4 j Summary
4 \0 F- y) ]& ~2 h8 d5 B! f 10. An End-to-End Example
0 W% c- E# Z" m( ]: M6 W Prerequisites, O A# Q- E* i# M
Setting up' y% M# M7 \$ c7 l+ ~, S* E
Ingesting data
9 A- f/ f4 V2 z% F Ingesting data from the RSS feed
$ F. p! q/ H3 V7 m" T Ingesting data from an FTP server9 k/ L7 J8 e& ], L6 U$ _, ]
Filtering the data
( j( k# ]$ S, b9 l The aggregator
6 l* } e6 s6 W5 u+ C The correlation bean
' o3 `& g- Y! d- e. Q The completion bean
: V4 _ E% U+ ?* G The aggregator bean
* Z0 s9 f' }8 Z i( J# K The splitter; F7 i) M4 l* f
Transformation
6 c3 L) r% m& ]4 N# B$ q' S' ` The DB transformer
7 F6 u$ K$ o$ Z W$ M The JMS transformer
) t* l8 d) I( O. I The mail transformer
! g( h9 o0 }& G9 _# H8 W" G Router
+ \ K9 e+ I# ~6 M3 Q% W: U Integration
' b7 T3 z0 M" t2 q: x# C) p Database integration
9 I4 O. g! `( Z) O* h' U& S Prerequisites
# U& i6 n$ C. P4 M9 A The gateway& C6 p5 @& _$ h p. Y8 Y
The service activator. j- s2 `' x& g' W/ ?$ q( }% M
Gateways for updating and reading the feeds7 I& [. }3 j: V0 _. D7 U
Sending a mail
4 [3 Q8 ^; U. o$ e" j. d* v% l. T Putting messages on to the JMS queue% {5 {0 M8 ?1 R0 o
Exporting as an MBean1 U' \; X% z" r- ]9 L5 H u% G
Summary
) h% D. X0 p! }) I6 M Index
/ t W8 B9 [/ x& p3 Q2 e6 a0 J2 S. @" ~2 D6 D& \4 |( M
3 h6 o+ Q3 g6 B9 E. h8 J |