java自学网(www.javazx.com)-java论坛,java电子书推荐:《Spring Integration Essentials》简称SI
# R/ p" B" {3 u0 T- Z0 [java电子书推荐理由: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相似。4 N- }* q6 m4 Q& ~: a4 J/ N
- m/ e" c5 a2 q: S4 Q. w7 l5 ^- S作者:Chandan Pandey
8 {! r# _; ~7 i8 \# J) z- ^, v3 a出版社:Packt Publishing. \, x$ l. G! G( E- S
/ z/ F+ q" r4 T9 y0 o
出版时间:2015-02-20 5 t. b( P. p5 b, g% h
. { P& Q0 d# O8 l" g3 n" j d
java电子书目录: Spring Integration Essentials! _- _+ M3 V* u
Table of Contents
: o$ v4 m2 B4 M- a- R7 K Spring Integration Essentials! O, J+ l# y( Q# }# P
Credits2 p7 l; g0 B# p. C1 F* ]( P5 u! ?
About the Author
$ b( X6 P: H2 U4 } Acknowledgments
# a1 H; `( Y4 F7 }3 O! D/ Z About the Reviewers: W( B) V) m2 k6 V( h
Support files, eBooks, discount offers, and more1 R6 {% L, G% Z# c* ~
Why subscribe?. p" r8 k$ G$ e/ i7 w: T
Free access for Packt account holders
/ S' M7 t' p( r# s; [7 f5 S Preface# R4 F. T/ P) n! k3 i$ c
How enterprise integration challenges can be solved
~( W/ g' D- N/ w2 h' a: l- y Who are the players?
+ L# `) T8 H* z* ` ^+ M4 \# } Why Spring Integration?- T* t* e9 g8 d* U- q
What this book covers
0 J" {+ A B8 ^0 `! g D0 B: } What you need for this book- V5 Z, b% ~$ z! m S- }. _7 E; b
Who this book is for4 W+ g. {9 F( a/ [% M% q
Conventions
. ?8 K+ u2 _* b3 K8 g% i Reader feedback8 D# ]% d! }3 Z
Customer support" \8 Y% k/ f2 f x5 S* x
Downloading the example code1 j/ O5 \0 J8 G
Errata
, M$ G9 q( a# T' O/ n3 Z+ X Piracy( l) r) ^0 @- W( A" [( d9 a2 s
Questions- t* n! r, o5 X/ o9 a6 @* S
1. Getting Started
2 e. S# \" L+ V" i* G/ D, y Setting up STS! {3 X( Z5 j! Z2 y% }7 R3 t+ J
Creating your first project& J+ }8 e: k. L& X- M3 C
STS visual editor8 q/ m8 B, v$ y) \+ o
Spring Integration Scala DSL
! x E3 {1 O2 O9 m Summary
8 _$ t3 ?/ i" |$ m8 `8 q/ U6 Q 2. Message Ingestion
5 x0 ]$ p5 x/ h0 O. t Working with message channels
2 q d+ v+ s; O& j8 z" D( \. L- e Channel types2 N5 y! [& s3 x- A9 t% g0 j1 X
Spring implementation of channels
) ^; Y; C7 c( q% r( D- \ Selecting a channel2 z/ s+ w* p' l* V# ]
Publish-subscribe channel
' B6 z2 I3 U5 S" W7 Q Queue channel
; x' h, f0 X, i& G z* q& b1 Z6 M Priority channel$ u- ^4 C9 i0 q% J. i
Rendezvous channel
' U; I+ P. l! D* e Direct channel
0 t% e5 z- I5 C6 F! V' s Executor channel) |6 A' k6 t6 _
Scoped channel
+ W: v1 `! A! E9 I Datatype channel! I5 s/ l% X/ f5 k5 j/ W7 a( f
Error handling on channels- P' h) o; n: A2 [* `9 V6 M
Persisting and recovering channels4 N' S- Z8 U% m: Z3 m
Channel interceptors) C$ }5 v1 ]$ d3 @; s% g( d
Summary8 J+ l! a. P h- K* t% {
3. Message Processing$ W( W0 f; c. e- L
Message endpoints C7 _( ?& W3 V5 f2 H* Z
Gateways
! G6 ~" ~$ h% R6 z, L! W Synchronous gateways
7 n6 e" ^' N3 c/ `" g Asynchronous gateways( }2 C4 [/ D& Z; _8 x) w
Service activators
( t, s( q- a( ?, M8 L Delayers% M- W1 q( P4 U" T, {
Transactions
/ e! T6 X6 z+ h3 R Summary
, r5 B9 N) ?6 `* d- f1 y 4. Message Transformers
" }; T! H8 s" D* Y; K. \0 | Introducing message transformers
9 N* a, N- \& C$ z* O4 `9 M0 @ Working with XML payload* O7 F/ G# K) C% }' c8 C0 E
The marshalling transformer$ z6 m! Q* Y! x# K' g& E. Y+ W( Q
The unmarshalling transformer
* w0 e3 U. N$ \6 E XPath transformers
+ o- R* C% `4 Z. S! ` Validating XML messages+ N( r5 A3 r# e% D
Beyond default transformers; ]0 S* [4 K0 ]2 a4 r* G
Content enrichers B; Q- {/ P7 u( w; q' N
Header enrichers5 u: W9 f# I+ f" Q# ~
Payload enrichers
' U) D9 d0 {% ^ [* i" f Claim check) v# _: W( N: ]( r
Incoming claim check transformer2 W4 ]8 g; h# [! ]: z, e& @) q$ _
Outgoing claim check transformer$ A- l0 B& F! A3 O4 d. e& ^ Z" g
Summary$ ~+ S9 u1 p1 s& J+ Z& C
5. Message Flow
$ R r' [* j5 n# B& t- n5 P Routers
# D- t1 \+ g/ Z' Z3 \9 p' i Payload-type router
9 c( I2 p! _( V& L8 A+ k Header value router' o# B. a; I, c9 ? R5 t
Recipient list router3 h; q o" n; ~0 f% }3 W9 r
XPath router
) \0 G7 A/ W8 j Error message exception-type router
+ I! \: f. J3 [: H Default output channel
\3 |) M% J! m Using annotations! ~& \: G9 k8 y9 X! R
Filters3 B) s" b: m4 v9 I# i
Using a Java class to act as a filter
# x; I7 s8 a7 n4 w) w, N Configuring a filter as a message endpoint
2 I9 [4 ^7 `2 z* f8 E4 |% j Splitters0 a. C# @8 K! K& l
Aggregators( }5 P2 R: ]2 d
Correlation strategy
4 k/ p- C" ^) T' d5 b" d! x6 U Release strategy
. ?: F U, C+ E2 j) ^ Message store4 U3 D$ M& S' |( W! s; _
Resequencers
1 z; U9 U6 s) b Chaining handlers/ Z0 y8 e( h1 ?; \: t
Summary& }1 W j8 g/ z) O9 u
6. Integration with External Systems" ]1 c) @9 J0 g4 U& B! d! A
Working with files
; I% H- s5 m* o: y) V4 L# x) G Prerequisites
. w' a0 ]" O, [" a$ T1 F4 f9 { Reading files
) A( N3 s1 \0 u: N Behind the scenes, K* j9 N' y+ x$ P9 o! Y
Filters
+ R2 M# m5 |8 T* M' p Preventing duplicates8 \# _+ w8 n) m( w2 D6 L0 S
Concurrent access4 f7 I5 S$ M0 H0 y9 Q! g
Writing files
$ s( O( ` h. E) h& `) e6 P Naming the file. d' ]) e! ?: l* f4 W* Z) S
Target directory+ f2 \1 Y* r E2 l( t* `
Dealing with existing filenames5 }* ?2 G# c6 L3 `
File transformers+ v3 Z' P& k- Z2 j7 Q
FTP/FTPS
& _: g' J' K) ^0 n+ P Prerequisites
: b0 Z4 `* \( K! z Downloading files from the FTP server
* Z* s2 N6 J# l& A. ~, f# r2 J) e Incomplete files" X: V3 _2 p* m8 m" u
Uploading files to the FTP server
E e# a3 {' L( ]2 t Avoiding partially written files0 Y: Z8 d# Y! m
FTP outbound gateway7 |- q. P# r+ ]% w$ i9 h
FTPS support( H I' Y9 _- C9 x
Social integration+ b) Y( x+ s; g1 G0 G1 w
Prerequisites
9 Y2 W5 G) j5 k+ Z# x, K Receiving tweets9 ^& p9 T1 w% K# @" v- @
Sending tweets* d0 y* [2 v0 B/ [
Twitter search outbound gateway( I4 V3 G- B1 d, V4 J0 `3 C
Enterprise messaging
2 m8 f( V2 }: P6 Q5 W) F Prerequisites! p/ N( C5 ~; |/ f
Receiving messages – the inbound adapter
) I, ]8 E$ x% j3 i# E7 E The polling adapter
4 T- ^) S6 m# x4 c6 Z. ^. P The event-driven adapter/ ]. H5 P' c3 K0 e
Sending messages – the outbound adapter
& B' k+ U4 E1 {/ ?( t; \ Gateway
5 l: w# X* K+ _' z% a) B0 U The inbound gateway& p7 t. ]1 X6 o8 y M/ c5 h5 z; `
The outbound gateway
! X; [, y Q, ^$ J9 _3 N HTTP
7 w l v6 b" a$ a! Y& O Prerequisites
4 {# e. C" e, t3 e The HTTP inbound gateway
, t% |1 D( H. S, n$ r/ x1 [ The HTTP outbound gateway, F5 b5 J* Y- Q$ L+ C2 F
Web services2 N3 N% k8 \- S/ D+ H; C5 E; U
Prerequisites
% v! `& C8 y7 ^' s; W+ S The inbound gateway3 t/ B9 ] h4 `. N) d7 \7 i
The outbound gateway
( G* W; T' K: d* c: j+ i7 o Database SQL9 B* l( V3 i5 D
Prerequisites+ P9 A( B5 q( I; b9 X. m V5 q
Datasource
- L+ G% ?0 T( ^) Y) E Reading from the database – the inbound adapter5 e5 o1 L/ t( E/ D4 y7 j
Transaction support) G+ F7 Z' v% R$ h" _! |0 }) d- B
Writing to the database – the outbound adapter
( q" K5 O, `" h4 n% g d" {9 F Inbound and outbound gateways2 N$ F2 D! U, f
Stream processing% s' C+ I3 v. W1 b; B6 u
Prerequisites
, `2 g* P. s# E- V3 k2 |; ~ Reading from a stream
8 ~3 Z+ U" h# H; y Writing to a stream0 M0 }( i+ L. t" U2 N
Summary. Y& e! c# N1 T# E( g* q: {( `
7. Integration with Spring Batch, ?3 R7 q/ K# X4 j
Spring Batch m" Y8 F7 n* ?
Prerequisites
9 F2 ^3 C5 @' O3 h Defining a Spring Batch job
1 }% M; Z5 F/ n. o The Spring Batch job language( V6 B7 j" f: ~7 t9 F8 y# N) H9 n
ItemReader
( L5 c1 e. h3 L4 ~+ Q# ~9 V* @" I ItemWriter
1 V1 ^5 Q" ^, f# W# Y; a" c Spring Batch and Spring Integration7 b X. Z2 D) X$ v( Q/ A; y
Launching the job- n( L, k: D9 z! t2 @/ V
Tracking the status of a batch job3 ?0 @: K/ }* Z# j7 B* Q
The other way round4 Q; t& @" u/ a" I1 L
Summary8 ?9 O# z- ^! Z* W4 @! \" Y
8. Testing Support
$ f( M9 q4 c& U ?% H Prerequisite
9 T; v' \3 ~) W, n5 ?( f, v Testing messages0 b* F1 C7 ]# M
Testing headers/ t) l, q; w# k, i8 i7 ?
Handling errors
. Q' A- `/ r. M3 J/ O# j, k5 U8 s Testing filters# O! P4 Q6 G3 l7 @( w7 c @
Splitter test
w2 x4 V& F8 m* b$ x Summary
; N' m" b% e# P3 }, _* _4 Z' W 9. Monitoring, Management, and Scaling Up
. [" u3 O8 N1 D; {8 { Monitoring and management" f4 b8 H e& K2 n& I' k- B
JMX support2 N7 C/ T- R F" p- S' C
Prerequisites
. n* D7 _. R, b& R The notification listening channel adapter
+ Q3 N u. ^8 b* Y% s% H: X! P The notification publishing channel adapter1 X" B/ Z$ L' E! ^1 k3 E
The attribute polling channel adapter# M. v4 {4 T) | M* A( w
The tree polling channel adapter
7 p0 n j. `; I) h The operation invoking channel adapter
! t3 F& L B5 p0 w$ P; I The operation invoking outbound gateway7 Z4 m3 U) X0 ?( \" q, F
The MBean exporter) q! x3 H6 e! [+ _) m
Tracking the message" J9 v; M& T. i- B& l, E5 p9 C, I* @+ u
Wire tap
! V: a8 f" P9 v2 R3 L Control bus' {# V0 n0 k6 u8 i% I0 q7 j: ]" @$ T: Z y
Scaling up. _+ o1 c1 C4 J$ {9 D' |
Threading. I7 u; Y$ y' F$ T1 ?
Scaling the state
2 }( o' _2 l( N! M; n8 _ Message store7 Z, [4 w0 Y% H7 d0 d5 c0 |7 z: i. i {
Claim check
! p- M$ Y5 x( w5 }2 J3 Z4 l/ b Summary: M A9 P7 ~+ K1 d+ h
10. An End-to-End Example2 ^$ _9 D$ Y' h) ~" _" e
Prerequisites
( o3 l& f$ Q! r4 U2 T7 X( e Setting up
8 `0 i0 s6 P6 } M9 z' T7 D$ p Ingesting data* V, f8 c/ e& y5 \
Ingesting data from the RSS feed2 Q9 ~) q# \* s: p
Ingesting data from an FTP server
/ k: V# m: c4 Y1 r Filtering the data
! _1 ?9 {# M# W* R$ S The aggregator
. h. d$ W M. ^3 G The correlation bean
' g. f1 }1 k3 J( v The completion bean( k1 P( B. Z7 u1 `* b* C: E
The aggregator bean
6 L/ F. a2 ^! d: X The splitter
5 \' k5 s' e) x+ b, E. x3 M( W Transformation
( F7 o; O5 j$ p/ a8 b$ o; ]9 n$ r The DB transformer) M) d7 \7 m) f) }
The JMS transformer
* K! V. Z }( ?5 v+ f The mail transformer1 F3 g/ s" T9 q) G+ V& U
Router
8 J3 u9 h' m! Z( A+ F' I1 h Integration
: K2 A; s1 b. n" n- T5 n% ~ Database integration
8 }' ]; h0 U1 d, N6 A Prerequisites: X/ P0 d5 p7 N/ {. V& D7 f
The gateway
5 ?0 s% T E4 V1 f; V4 ` The service activator
1 \7 e$ ^# y: v# w) z0 X Gateways for updating and reading the feeds
, M" C( f6 J8 Q7 G Sending a mail
2 i( s3 c |. \. o$ q Putting messages on to the JMS queue0 _) h6 o; p" W
Exporting as an MBean/ r7 n& @( i1 [5 z. Q& W4 y7 c& P' g
Summary
/ a) T5 O" g" T' K- \8 M* M4 ?0 x2 @8 s Index ' {# C% Q9 |3 H/ [1 B; f" t7 X
! N+ j: g* T' Z
2 Y4 d- Q4 j8 D" h |