Upload
artem-bilan
View
1.123
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Java overview:Java overview:the pthe pyyramid of successramid of success
Artem BilanArtem Bilan
CS Ltd.CS Ltd.SpringSpring Integration Integration commiter commiter
Email: [email protected]: [email protected]
2
Who is Artem Bilan
http://forum.vingrad.ru/showuser-18365.html
https://github.com/artembilan
http://linkedin.com/in/cleric
Spring Integration Reference Manual
Mark Fisher…
Artem Bilan
3
Thorny path to the top
4
Agenda
• Java syntax
• Swing• Garbage collector
• Multi-Threading
• Data Bases
• WEB
• Development tools
• Frameworks
• WEB-Services
• Patterns
• Messaging
• Scripting
• Demo time
• Summary & Questions
5
Let’s build our own pyramid!
JAVA JAVA syntaxsyntax
6
Java starts from source
public static void main(String[] args) {...}
public static <T> T argThat(Matcher<T> matcher) { return reportMatcher(matcher).<T>returnNull();}
@Entity@Table(name = ‘USERS')@SQLInsert(sql = 'insert into TMP_USERS (PASSWORD, LOGIN, ID) values (?, ?, ?)')@AccessType('field')@XmlType(name = ‘User')class User extends BaseEntity<Long> {
7
Swing: the right way to start!
8
Swing: the right way to start!
Java Java SyntaxSyntax
ComponenComponentsts
SwingSwing
9
Garbage collector & memory model
-XX:+UseParallelGC-XX:+UseConcMarkSweepGC-XX:+UseG1GC
10
Garbage collector & memory model
11
Multi-Threading & Concurrency
12
Multi-Threading: Epic Fail
13
Multi-Threading & Concurrency
AtomicsAtomics
LocksLocks
VolatileVolatile SynchronizedSynchronized
ExecutorsExecutors
ForkJoinPoolForkJoinPoolPhaserPhaser
14
Data Bases: Persistence power
Select * from orders
From DB to JavaFrom DB to Java
Typical data issueTypical data issue
Be clever!Be clever!
Think different!Think different!
15
Data Bases: Persistence power
SqlSqlDataSourceDataSource
JPAJPA
XAXAOracleOracle
MongoDBMongoDB
LuceneLucene
Hybrid solutionsHybrid solutions
Key/ValueKey/Value
16
WEB: Globalize yourself!
17
Development & build tools
18
WEB & Development tools
Delicious results!Delicious results!
19
Frameworks: don’t reinvent the wheel!
• Good solutions
• New ideas
• Right things at the right place
• DRY
• KISS
• Postal Low
Don’t afraid experimentDon’t afraid experiment
++
++
20
Spring - the power of application
• Spring AMQP• Spring Batch• Spring BlazeDS• Spring Data • Spring Android• Spring Hadoop• Spring GemFire• Spring LDAP• Spring Mobile• Spring Roo• Spring Integration
• Spring IDE
• Spring OSGi
• Spring Rich Client
• Spring Security
• Spring Slices
• Spring Social
• Spring Web Flow
• Spring Web Services
• Spring.NET
• Etc.
21
JEE vs Spring
VSVS
VS
22
WEB-Services: Let’s start integrate!
Business here
Integrate them all!
Money there
Everything in one place
23
WEB-Services: Let’s start integrate!
SOAPSOAP RESTREST
XML JSON Etc.
Any withAny withHTTPHTTP
24
WEB-Services: Let’s start integrate!
You are the man
25
Patterns: developres’ langauge
Singleton Factory
Bridge
Strategy
Composite
Adapter
Observer
Builder
26
Messaging is everywhere
27
Scripting & DSLs
httpFlow { httpGet(url:{"http://google.com/search?q=$it"},
responseType: String)}
Groovy
val httpFlow = http.GET[String]{ search: String => "http://google.com/search?q="+search }
Scala
XML
<http:outbound-gateway http-method="GET" expected-response-type="java.lang.String"
url="http://google.com/search?q={search}" request-channel="input">
<http:uri-variable name="search" expression="payload"/></http:outbound-gateway>
28
There is no limit to perfection
29
Demo time
iB2
WS
ABS Client-Bank
Processing Card-backoffice
POS JDBC
JavaOracle procedure
30
Demo time
Web Service
MagicMagicJAVAJAVA
31
Conclusions
is an unlimited IT universeis an unlimited IT universe
has growing communityhas growing community
is a flexible platformis a flexible platform
helps businesshelps business
makes Internet closermakes Internet closer
33
More info
• Java Specification
• Cay S. Horstmann
• Joshua Bloch
• Bruce Eckel
• Martin Fowler
• Spring Framework
• Hibernate
• EIP
• Steve McConnell