java自学网(www.javazx.com)-java论坛,java电子书推荐:《Spring Integration Essentials》简称SI" N' t& }9 {: K0 L7 j! x
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相似。8 h: W( @8 p: I) ~ @/ T+ G7 s
& k3 t, w0 [- Q, W7 L7 O
作者:Chandan Pandey Y' B3 z; r2 m6 e! N7 g! b% }) d. w8 v
出版社:Packt Publishing
& r3 ^8 z" |3 d% ~6 t) _: |- Y6 x) I5 t- d& f# J+ [3 ]0 V
出版时间:2015-02-20 5 O6 I/ C1 ^4 M9 \8 V) I( b( t
) C E! }8 H7 D( |; T
java电子书目录: Spring Integration Essentials
7 X0 b/ ?* h& }- \ Table of Contents, \- [4 ?' n- F" e' [
Spring Integration Essentials( ]$ h4 p1 c M" t; e
Credits
2 m4 o8 l2 v3 W8 P5 V! Q, O About the Author# f% ]* Z( F* D! B! z$ ~/ r
Acknowledgments
! ^. o9 i% _9 }# W About the Reviewers
6 ]. E9 p0 S. W' E; d Support files, eBooks, discount offers, and more
) e2 c4 `$ `5 l5 t Why subscribe? J) y# F4 F0 F: k c! X; z
Free access for Packt account holders7 D% a1 n W8 C: J& Z" d% s4 Z% a
Preface5 a2 w- I2 l8 t; x7 z" ?8 r2 B
How enterprise integration challenges can be solved( k- d% \# v/ g' A0 e3 B
Who are the players?
9 S( ?* Z" q5 {* B4 f4 ], t Why Spring Integration?$ {. Y# {# k; e" @+ b9 Z
What this book covers/ m" c( f" g& H. F; d- A
What you need for this book3 Z! [/ P6 ~0 ~
Who this book is for9 @& @0 r' h+ Y7 k7 p- v
Conventions1 c- R3 {* ^7 y4 G, s2 M, D
Reader feedback
`' Z. v7 r- g4 C [# V# |! y2 ~- { Customer support. t. u9 H( M: g, [! ~! W
Downloading the example code5 K) f/ C1 n) n, t. Y
Errata! p/ t: J3 L+ e* C
Piracy* `% A! y2 ~& `4 u
Questions: y: X) G* E9 Q/ p! u7 Q+ T
1. Getting Started
1 s0 G$ ?+ ^' ~( d5 R: K' i Setting up STS5 d/ Q% B$ b9 E: D6 N4 Y
Creating your first project/ J$ e5 R" U: _0 F! m+ }
STS visual editor
( r. z1 r+ @) J5 D) b+ q Spring Integration Scala DSL Z% R: E) Z/ Q$ ^; H8 j* z+ h5 }
Summary
; d, A k& D* S 2. Message Ingestion4 l& _3 g; L2 I( [2 B
Working with message channels
5 a; C7 o4 D" ?! h, J0 H Channel types
8 c3 Y* _' s: J) D: W( X% R Spring implementation of channels
! O& B% a8 t3 e/ B7 k& }. |: n Selecting a channel
! u! u P' r* t. v+ O4 ^; M Publish-subscribe channel o) U/ [# c$ G* y6 V% ]: |
Queue channel
0 a: V" I5 z# @* H. M% t. P Priority channel5 A/ O5 a; u) @& i5 A
Rendezvous channel9 ^& G% M) Y, [2 L
Direct channel# {# E+ a8 F. H" A
Executor channel& w6 c& U7 ]" }$ v
Scoped channel E. f* O% ]# r3 s! P
Datatype channel5 B$ {& K! V8 f! S1 Z' R
Error handling on channels# K3 e0 ~! E, s2 H. k" j
Persisting and recovering channels2 d' ^: }! C/ E7 |+ K# X0 b
Channel interceptors
X" U) G: G1 g) d9 R5 u) g Summary
: E. _( } K- _) O( U4 N: ~ 3. Message Processing1 O( |8 \5 g: m3 J$ O1 S/ z* W9 f
Message endpoints
" z" w2 I8 K# Y- i; Y% O+ J Gateways
6 n$ a: B( N* Z' F; l: {8 x* c Synchronous gateways
. _. p& c3 V+ U6 ]: s: N1 W2 p0 x Asynchronous gateways' u. x7 n2 a+ {
Service activators
9 M' M$ ~$ v+ I' U Delayers4 H8 m# u6 I. M' ]
Transactions
: _( {" @" O4 D& Q/ t1 b4 H/ S Summary6 S. e$ C" b# U# e
4. Message Transformers: k1 x# @2 B. q* C+ D9 d
Introducing message transformers. T5 I% b m( Y! M2 b% r
Working with XML payload T7 E4 v& O% @) |( O- ^8 E
The marshalling transformer
! L8 e5 w; [ K# j4 o The unmarshalling transformer
7 w5 r5 o8 E' p8 X0 h XPath transformers
4 v& _6 a: V) s2 q [, p* X: ?- Q# @ Validating XML messages
; M6 j! O# o/ |; {, D1 | Beyond default transformers( b- i- W' W* c1 e! s
Content enrichers7 [! m& b3 D7 A+ e, [7 c3 ?
Header enrichers
% V# x* e$ B0 `) Y2 w2 R+ x7 H Payload enrichers
" z* s5 Q7 g6 s9 O Claim check
6 X5 X/ p+ O7 n0 ~ Incoming claim check transformer
# L8 g1 {; C! G3 P* U! x) G Outgoing claim check transformer
: C! A: z& F' q, q0 h- L Summary
" v4 l' ?/ _/ @ 5. Message Flow; Y" v$ g9 ?/ d- ] M. I
Routers- T5 k. X2 n2 y' D$ p) L
Payload-type router
/ T$ e" `2 C* d% H' N7 s& S Header value router
- x. C/ n- { h3 ~4 Y Recipient list router
/ m# [' @) Q5 ]" d9 q" y4 Z; U XPath router
% ?: n) x& T a% }; r0 a, c* g Error message exception-type router
; U& ]: W7 P+ n% A4 J G Default output channel* B. ^6 h, E0 A/ H0 R* j
Using annotations5 N. W/ {# V/ A0 j0 Q3 O; V
Filters7 E, K' E0 v8 F/ p
Using a Java class to act as a filter4 b' E# Q& B/ C4 K9 S4 W. @
Configuring a filter as a message endpoint& f8 x# f4 a& L1 S9 W& n
Splitters7 V5 H/ I" L: ], K
Aggregators
. B* ]: |) b7 F) [6 B* J Correlation strategy
- b! t; P/ G- e Release strategy
_9 k/ }7 o/ `. q% a4 N' L Message store
3 G5 G9 Q y+ P( i: L Resequencers
+ W) h Z4 V0 l9 R Chaining handlers
7 k( R- k" Q! P& N; n( n- h Summary5 R. W- |3 p7 E
6. Integration with External Systems% d: I3 S* [& g8 g+ \7 I4 H
Working with files0 D8 D9 f* U+ _: L. o- G6 b, N
Prerequisites+ }- i4 a* U% v9 L
Reading files- k# O7 Y& N: i" i
Behind the scenes& C, @7 w( k' [$ }6 p
Filters
- d- F9 O- v4 p" q5 B# [ Preventing duplicates$ w1 B1 {; x2 E. M- I8 N: N
Concurrent access8 U, O# U$ e, s$ g8 N
Writing files
+ \5 U. D; K% o; u$ c5 v' s. S Naming the file
% O! X1 f) P' H- U1 ^2 ]# c) T0 y Target directory/ O8 d0 ~5 f: I1 f- M
Dealing with existing filenames
0 W0 [' _$ ]) H" }* L File transformers' ~* \" k1 }( D5 {5 Q& w+ \5 y
FTP/FTPS0 Y& p0 J0 T+ S" e' _
Prerequisites ?4 X$ u6 z' ]* d
Downloading files from the FTP server; q9 o" [. W% x0 o
Incomplete files' B; u C( _9 g% n
Uploading files to the FTP server
* j9 `# p; x! E; N; ] Avoiding partially written files
8 p; H/ R/ H8 B, O8 k FTP outbound gateway) v i$ c( j# N X0 n, W
FTPS support4 n0 }, { c1 X: G; s. p
Social integration; m& A. ]7 u6 l' ?# w" M
Prerequisites
! j& A8 {6 K' L, c7 z7 K- y Receiving tweets- k+ H1 c& m4 |0 K1 I
Sending tweets
8 d) q2 o a* A( V: ^5 W; n Twitter search outbound gateway* P3 F# i' t3 M0 W3 C' C
Enterprise messaging
7 f; {" i! j' d6 @# ] Prerequisites# g. x9 g5 ]. _
Receiving messages – the inbound adapter
' P9 R. ?2 V; X" h* f The polling adapter
& H4 p; a& I- J- ] The event-driven adapter" z- r4 Y- p& n* ?& Z W! h. ~
Sending messages – the outbound adapter: ~4 p: ^8 z2 u z6 S2 E- _1 l
Gateway
$ S. N& e: Y/ X, F, ?1 U7 J The inbound gateway! C1 k0 Q R" o9 l' N: U- t3 q A
The outbound gateway
! s% I. r9 ^! f9 r, N" E a HTTP
- J$ z2 z2 h% }/ ?5 I Prerequisites
0 T+ ^/ Y' f# v j3 b0 U- I1 y The HTTP inbound gateway, t( A) \* @& x1 t+ H+ L4 Q
The HTTP outbound gateway
& c2 j# d& ?4 h* W9 g Web services
5 B8 p$ n( C. E) [2 I$ E: y5 x Prerequisites
: f# v) V- h& k6 U: r- _2 @4 e- O4 q The inbound gateway
4 F6 l0 u3 f* S The outbound gateway1 G/ L0 y/ `! `7 y
Database SQL! i9 J+ F L" N
Prerequisites
$ n- l8 {1 t |' S- X- J! B9 _ Datasource# r A/ M; U: |, b0 K3 C) I' J
Reading from the database – the inbound adapter8 |! _% M5 V$ k+ L& n1 C2 E) Z, ?
Transaction support; {0 `/ R0 k; k3 u
Writing to the database – the outbound adapter
7 b& ~$ y7 w& c2 H! W1 g4 Z6 L3 u# h Inbound and outbound gateways
( K+ g2 r+ ?/ t$ {! j Stream processing
6 O8 P+ ?2 n# G \( T Prerequisites& A% L; H# b d" h$ G
Reading from a stream' t9 [" g" D `8 b0 g. W1 Q3 r
Writing to a stream. p- F; D, F3 e
Summary6 P# H3 {* z7 C4 M
7. Integration with Spring Batch
2 X+ Z: F# E1 M! g h# H4 q Spring Batch
$ S( w# I9 y3 z3 W3 P& o Prerequisites
) m- e$ G. |0 [- ^ Defining a Spring Batch job
2 G$ m( L1 [" b, V5 X, ~ The Spring Batch job language
1 B/ ?$ ?. D, z* X ItemReader
8 c+ o, m9 i/ O& L: G8 Z7 C6 l ItemWriter
9 U: O! M8 F; U4 Z; k% ?% n% p5 w Spring Batch and Spring Integration- t9 b0 N* D, t' ?) _' P
Launching the job
4 r0 N9 B# X! r8 Z$ y) ] Tracking the status of a batch job- @5 m6 ~7 ^5 S
The other way round
# H* j: ]" T. x* T* V) \ Summary
% G- ?' d t& o, ]$ h4 O. K9 i 8. Testing Support
, O; z# X1 Y! G: x Prerequisite: y& _! } `) F/ f6 G0 z
Testing messages: r* C" v1 c' e) n' S# I+ [
Testing headers
: S% q/ U# I1 X: H5 y' d Handling errors
/ K, l5 B7 ^7 p) z Testing filters- E6 E3 }% e! n" ?' p4 s2 l
Splitter test z( v/ n* @7 L3 @6 Q" `1 m @* [. _
Summary* z5 ]3 D0 w6 W3 Y O; Q6 L% c# R
9. Monitoring, Management, and Scaling Up/ V6 p) O1 ^" K. M3 I! E& Q
Monitoring and management
" ?" U% y; w$ g9 Z5 b9 s7 I& } JMX support
/ S8 Z' ]. |! G Prerequisites- d4 e6 s7 e: o* ~' u" l
The notification listening channel adapter8 B& }7 w ?6 e/ p* o3 E
The notification publishing channel adapter
. I" u( F- S* G L+ d The attribute polling channel adapter) D; G7 V$ s, F( J
The tree polling channel adapter
/ w2 f7 X- U0 ^8 g, ] The operation invoking channel adapter
7 T. P/ ]" M- h The operation invoking outbound gateway
- p1 d/ S7 ], A, p The MBean exporter$ V8 K# w+ X `0 N" t; W/ n6 h
Tracking the message/ E5 q/ r+ f( a7 i
Wire tap, e: M! ^; l/ _4 W
Control bus
2 c# r8 B {2 ]) o Scaling up
9 I* n+ @. i7 U* {- A+ l. U9 T Threading1 w" l& G- ^5 D; o% {! Y9 T
Scaling the state4 K7 x+ B" G p- ]: h2 o
Message store# k3 f; R' f- M/ w# H/ D* c
Claim check
8 [$ t' Y% {3 L4 ]; x. e+ i. \7 u Summary
! W- [! o1 d! R! i+ N 10. An End-to-End Example$ v7 [( d& x" Y! i$ a1 F$ _
Prerequisites
& f' y4 M! ?. t9 o% _% E Setting up
4 v$ C2 _( n# w/ L; c5 V. e0 O Ingesting data
8 r0 C6 x0 Y H+ z Ingesting data from the RSS feed
+ J/ @8 _5 l- X0 d8 p0 O/ W Ingesting data from an FTP server b# H: H5 M) d& L8 z7 A6 V% k% w
Filtering the data' h* F( ~- y7 L n3 m
The aggregator
) }6 y) i) Y/ o# ^( h The correlation bean; Z7 `$ e" u7 K% D6 k
The completion bean; g9 G6 S8 c9 L7 [" L
The aggregator bean
5 f' ~" D/ F0 j& ?$ R The splitter5 W/ E( e- E! G: k/ q5 R( R
Transformation* \) k$ I! h( _% e" G* U9 n8 s
The DB transformer$ O2 y+ p/ j& a
The JMS transformer, b) p! E: d- ] W) P( S
The mail transformer/ E& h7 @& B; m9 W5 T/ Z
Router
1 e1 S' w' y: B& o, O! K# d( q Integration
% y8 V. a( D r$ o) ]3 q# G$ y Database integration
% O, C$ Y8 B/ l% p2 b5 v Prerequisites
, b8 M4 M5 w- ^! u# U. { The gateway
5 B" i- D$ p# O The service activator
# F- `% z$ d+ ~& @( B7 n; ?4 i+ G Gateways for updating and reading the feeds
# i4 q( e2 |: A% E Sending a mail
7 Y! ~; B4 v/ _# B% }$ t8 n. A) h5 K Putting messages on to the JMS queue
: I; s3 {% M: _ Exporting as an MBean
2 u1 T9 |) R9 H- P2 q- b! b; v Summary
j3 M6 b, ~/ E* |5 C5 D+ C5 Q Index
, g7 @& j0 v& p" {( |. F/ y9 q5 M8 m% |, Q, L' C) U! z$ G4 t$ [
3 A2 \6 r5 n- y. x7 B: E* r
|