SlideShare a Scribd company logo
Josh Long (⻰龙之春)
@starbuxman
joshlong.com
josh.long@springsource.com
slideshare.net/joshlong
github.com/joshlong
http://spring.io
T H E U P D AT E
ABOUT ME
interested in big data, the open
web, cloud and all things Spring.
About Josh Long @Starbuxman
josh@joshlong.com
josh.long@springsource.com
Developer Advocate
SPRING IS.. SPRING.IO
WEB
Controllers, REST,
WebSocket
INTEGRATION
Channels, Adapters,
Filters, Transformers
BATCH
Jobs, Steps,
Readers, Writers
BIG DATA
Ingestion, Export,
Orchestration, Hadoop
DATA
NON-RELATIONALRELATIONAL
CORE
GROOVYFRAMEWORK SECURITY REACTOR
GRAILS
Full-stack, Web
XD
Stream, Taps, Jobs
BOOT
Bootable, Minimal, Ops-Ready
SPRING IS.. SPRING.IO
SPRING IS.. SPRING.IO
SPRING IS.. SPRING.IO
SPRING IS.. SPRING.IO
SPRING IS.. SPRING.IO
SPRING.IO IS REFERENCE IN ACTION
REST DESIGN WITH SPRING
H T T P : / / S P R I N G . I O
Demo
SPRING IS.. GITHUB
SPRING WORKS IN MANY LANGUAGES
Spring loves the JVM:
Java (5,6,7, and 8), Groovy, Scala, etc.
SPRING WORKS IN MANY LANGUAGES
val applicationContext =
new FunctionalConfigApplicationContext( classOf[ServiceConfiguration])
// ServiceConfiguration.scala
class ServiceConfiguration extends FunctionalConfiguration {
importClass(classOf[DataSourceConfiguration])
val dataSource : DataSource = getBean(“dataSource”)
val jdbcTemplate = bean() {
new JdbcTemplate( dataSource )
}
val jdbcTransactionManager = bean(“txManager”) {
new JdbcTransactionManager(dataSource)
}
}
Scala
SPRING WORKS IN MANY LANGUAGES
def bb = new BeanBuilder()
bb.loadBeans("classpath:*SpringBeans.groovy")
def applicationContext = bb.createApplicationContext()
// MySpringBeans.groovy
import o.sf.jdbc.core.JdbcTemplate
import o.sf.jdbc.datasource.DataSourceTransactionManager
beans {
jdbcTemplate(JdbcTemplate) {
dataSource = dataSource
}
transactionManager(DataSourceTransactionManager) {
dataSource = dataSource
}
}
Groovy
SPRING WORKS IN MANY LANGUAGES
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext( ServiceConfiguration.class);
// ServiceConfiguration.java
@Configuration
@ComponentScan
@Import(DataSourceConfiguration.class)
@EnableTransactionManagement
class ServiceConfiguration {
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) throws Exception {
return new JdbcTemplate( dataSource );
}
@Bean
public PlatformTransactionManager jdbcTransactionManager(DataSource dataSource){
return new JdbcTransactionManager (dataSource );
}
}
Java
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
Delayed again! from 09/2013 to as late as 03/2014!
Meanwhile, even has lambas...
...
C++
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
IDE Support:
IntelliJ IDEA has had Java 8 support for a year
Eclipse won’t have any until June 2014 (..!!)
Eclipse-based Spring Tool Suite (STS) has beta Java 8 support.
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
Spring 4.0 to be GA against Developer Preview by end of 2013.
Method references are a great fit for Spring!
JdbcTemplate jdbcTemplate;
// method references
private Customer map(ResultSet rs, int rowNum)
throws SQLException {
	 return new Customer( rs.getString("name"), rs.getInt("age") );
}
// let it satisfy the `RowMapper` functional interface
Customer customer = jdbcTemplate.queryForObject(
"select name, age from customers ",
this::map);
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
Spring 4.0 to be GA against Developer Preview by end of 2014.
lambas are a great fit for Spring!
JdbcTemplate jdbc;
Customer customer = jdbc.queryForObject(sql,
(rs, rowNum) -> new Customer(rs.getLong("id")));
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
Spring 4.0 to be GA against Developer Preview by end of 2014.
lambas are a great fit for Spring and Twitter!
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
JSR-310 - Date and Time
// declarative date format
import java.time.*;
import org.springframework.format.annotation.*;
public class Customer {
@DateTimeFormat(iso=ISO.DATE)
private LocalDate birthDate;
@DateTimeFormat(pattern="M/d/yy h:mm")
private LocalDateTime lastContact;
}
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
Repeatable Annotations
@Scheduled(cron = "0 0 12 * * ?")
@Scheduled(cron = "0 0 18 * * ?")
public void performTempFileCleanup() {
...
}
SPRING WORKS IN MANY LANGUAGES
Java 8
a quick note on
Spring 4.0
JDK 6 -> JDK 8
Java EE 5 (with JPA 2.0 feature pack) -> Java EE 7
SPRING RUNS WELL ON JAVA EE 7
Spring works well in Java EE environments
Supports Java EE 7: Date/Time API, JTA 1.2, JMS 2.0, JPA 2.1, Bean
Validation 1.1, the new concurrency API in JSR-236, Servlet 3.1, and
WebSockets (JSR 356)
Even participated in a few JSRs: the websocket JSR (356) and the
Batch JSR (352)
SPRING IS WHERE YOU ARE
SPRING IS WHERE YOU ARE
SPRING IS WHERE YOU ARE
SPRING IS WHERE YOU ARE
S P R I N G C L O U D A N D
Demo
SPRING SUPPORTS NOSQL
Spring supports all the SQLs:
NoSQL, NOSQL, and SQL
SIMPLIFIED DATA ACCESS++
Spring Data offers conventional repositories,
*Template implementations, unified data
access exception handling
S P R I N G D ATA J PA R E P O S I TO R I E S
Demo
S P R I N G D ATA R E D I S C A C H E :
Demo
SPRING SUPPORTS
Surviving the Big Data
Wild-West with
Spring for Hadoop
SPRING SUPPORTS
But How Do You Process Data Realtime?
@metamarkets founder Michael E. Driscoll:
SPRING SUPPORTS
Introducing Spring XD
sources
sinks
S P R I N G X D A N D P I V O TA L H D
Demo
SPRING IS.. MESSAGING AND INTEGRATION FRIENDLY
Spring’s REST and Security support
AsyncRestTemplate
Hypermedia Links
@RestController
Websocket
S P R I N G C R M R E S T D E M O
Demo
SPRING IS EASY TO GET STARTED WITH
Boot
Autoconfigure
Starters
CLI
Actuator
Tools
Samples
Bootstrap
your productivity
SPRING SUPPORTS CONVENTION OVER CONFIGURATION
SPRING SUPPORTS CONVENTION OVER CONFIGURATION
S P R I N G B O O T TO M C AT S A M P L E
Demo
SPRING IS.. MESSAGING AND INTEGRATION FRIENDLY
Spring gets (and sends!) websockets
WebSockets delegating to implementations on app servers like GlassFish,
Tomcat, and Jetty
Supports Sock.js server, superset of WS.
higher level STOMP supported on WS
supports JSR 356 (javax.websocket.*) support.
W E B S O C K E T T R A D E R
Demo
Any
Questions
@starbuxman
josh.long@springsource.com
josh@joshlong.com
github.com/joshlong
slideshare.net/joshlong
?

More Related Content

PDF
Boot It Up
PDF
Bootiful Code with Spring Boot
PDF
Have You Seen Spring Lately?
PDF
Economies of Scaling Software
PDF
Multi Client Development with Spring for SpringOne 2GX 2013 with Roy Clarkson
PDF
Java Configuration Deep Dive with Spring
PDF
Building Single Page Apps with React.JS
PDF
Brisbane DevOps Meetup - Logstash
Boot It Up
Bootiful Code with Spring Boot
Have You Seen Spring Lately?
Economies of Scaling Software
Multi Client Development with Spring for SpringOne 2GX 2013 with Roy Clarkson
Java Configuration Deep Dive with Spring
Building Single Page Apps with React.JS
Brisbane DevOps Meetup - Logstash

What's hot (20)

PDF
PDF
A Practitioner’s guide to Hardened JavaScript
PDF
Not Only Streams for Akademia JLabs
PDF
Regex Considered Harmful: Use Rosie Pattern Language Instead
PDF
Apache Jackrabbit Oak - Scale your content repository to the cloud
PDF
Reactive Streams, j.u.concurrent & Beyond!
PDF
Big data beyond the JVM - DDTX 2018
PDF
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
PDF
Beware the potholes on the road to serverless
PDF
Introducing Spring Auto REST Docs - Spring IO 2017
PDF
Elasticsearch for SQL Users
KEY
YQL:: Select * from Internet
PDF
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
PDF
The things we don't see – stories of Software, Scala and Akka
PDF
Debugging Spark: Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
PPT
PDF
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
PDF
Spring rest-doc-2015-11
PPTX
Austin cassandra meetup
PDF
Autoscaling Best Practices - WebPerf Barcelona Oct 2014
A Practitioner’s guide to Hardened JavaScript
Not Only Streams for Akademia JLabs
Regex Considered Harmful: Use Rosie Pattern Language Instead
Apache Jackrabbit Oak - Scale your content repository to the cloud
Reactive Streams, j.u.concurrent & Beyond!
Big data beyond the JVM - DDTX 2018
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
Beware the potholes on the road to serverless
Introducing Spring Auto REST Docs - Spring IO 2017
Elasticsearch for SQL Users
YQL:: Select * from Internet
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
The things we don't see – stories of Software, Scala and Akka
Debugging Spark: Scala and Python - Super Happy Fun Times @ Data Day Texas 2018
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Spring rest-doc-2015-11
Austin cassandra meetup
Autoscaling Best Practices - WebPerf Barcelona Oct 2014
Ad

Similar to the Spring Update from JavaOne 2013 (20)

KEY
A Walking Tour of (almost) all of Springdom
PDF
Spring db-access mod03
PDF
The spring 32 update final
PPT
Spring - a framework written by developers
PPT
Spring 3.1: a Walking Tour
PDF
Spring 4 on Java 8 by Juergen Hoeller
PDF
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generation
PDF
Spring 4-groovy
PDF
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
PDF
Spring Framework 4.0 to 4.1
PPTX
Skillwise-Spring framework 1
PDF
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
PDF
Advance Java Training in Bangalore | Best Java Training Institute
PPTX
Spring Framework Rohit
PDF
An Introduction to Spring Data
PDF
the Spring 4 update
PPTX
Spring framework
PDF
SpringPeople Introduction to Spring Framework
PDF
MongoDB for Java Developers with Spring Data
PDF
The Spring 4 Update - Josh Long
A Walking Tour of (almost) all of Springdom
Spring db-access mod03
The spring 32 update final
Spring - a framework written by developers
Spring 3.1: a Walking Tour
Spring 4 on Java 8 by Juergen Hoeller
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generation
Spring 4-groovy
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 to 4.1
Skillwise-Spring framework 1
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
Advance Java Training in Bangalore | Best Java Training Institute
Spring Framework Rohit
An Introduction to Spring Data
the Spring 4 update
Spring framework
SpringPeople Introduction to Spring Framework
MongoDB for Java Developers with Spring Data
The Spring 4 Update - Josh Long
Ad

More from Joshua Long (20)

PDF
Microservices with Spring Boot
PDF
REST APIs with Spring
PDF
Extending spring
KEY
Multi Client Development with Spring
KEY
Integration and Batch Processing on Cloud Foundry
KEY
using Spring and MongoDB on Cloud Foundry
PDF
Spring in-the-cloud
KEY
Multi Client Development with Spring
KEY
The Cloud Foundry bootcamp talk from SpringOne On The Road - Europe
KEY
Multi client Development with Spring
KEY
Spring Batch Behind the Scenes
KEY
Cloud Foundry Bootcamp
KEY
Spring in the Cloud - using Spring with Cloud Foundry
PPT
Spring and Cloud Foundry; a Marriage Made in Heaven
PDF
Extending Spring for Custom Usage
PPT
Using Spring's IOC Model
PPT
Enterprise Integration and Batch Processing on Cloud Foundry
PDF
a Running Tour of Cloud Foundry
PDF
Cloud Foundry, Spring and Vaadin
PDF
Messaging sz
Microservices with Spring Boot
REST APIs with Spring
Extending spring
Multi Client Development with Spring
Integration and Batch Processing on Cloud Foundry
using Spring and MongoDB on Cloud Foundry
Spring in-the-cloud
Multi Client Development with Spring
The Cloud Foundry bootcamp talk from SpringOne On The Road - Europe
Multi client Development with Spring
Spring Batch Behind the Scenes
Cloud Foundry Bootcamp
Spring in the Cloud - using Spring with Cloud Foundry
Spring and Cloud Foundry; a Marriage Made in Heaven
Extending Spring for Custom Usage
Using Spring's IOC Model
Enterprise Integration and Batch Processing on Cloud Foundry
a Running Tour of Cloud Foundry
Cloud Foundry, Spring and Vaadin
Messaging sz

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Empathic Computing: Creating Shared Understanding
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
KodekX | Application Modernization Development
cuic standard and advanced reporting.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
Understanding_Digital_Forensics_Presentation.pptx
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MYSQL Presentation for SQL database connectivity
Building Integrated photovoltaic BIPV_UPV.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
“AI and Expert System Decision Support & Business Intelligence Systems”
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Monthly Chronicles - July 2025
Empathic Computing: Creating Shared Understanding
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Electronic commerce courselecture one. Pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KodekX | Application Modernization Development

the Spring Update from JavaOne 2013

  • 2. ABOUT ME interested in big data, the open web, cloud and all things Spring. About Josh Long @Starbuxman josh@joshlong.com josh.long@springsource.com Developer Advocate
  • 3. SPRING IS.. SPRING.IO WEB Controllers, REST, WebSocket INTEGRATION Channels, Adapters, Filters, Transformers BATCH Jobs, Steps, Readers, Writers BIG DATA Ingestion, Export, Orchestration, Hadoop DATA NON-RELATIONALRELATIONAL CORE GROOVYFRAMEWORK SECURITY REACTOR GRAILS Full-stack, Web XD Stream, Taps, Jobs BOOT Bootable, Minimal, Ops-Ready
  • 10. REST DESIGN WITH SPRING H T T P : / / S P R I N G . I O Demo
  • 12. SPRING WORKS IN MANY LANGUAGES Spring loves the JVM: Java (5,6,7, and 8), Groovy, Scala, etc.
  • 13. SPRING WORKS IN MANY LANGUAGES val applicationContext = new FunctionalConfigApplicationContext( classOf[ServiceConfiguration]) // ServiceConfiguration.scala class ServiceConfiguration extends FunctionalConfiguration { importClass(classOf[DataSourceConfiguration]) val dataSource : DataSource = getBean(“dataSource”) val jdbcTemplate = bean() { new JdbcTemplate( dataSource ) } val jdbcTransactionManager = bean(“txManager”) { new JdbcTransactionManager(dataSource) } } Scala
  • 14. SPRING WORKS IN MANY LANGUAGES def bb = new BeanBuilder() bb.loadBeans("classpath:*SpringBeans.groovy") def applicationContext = bb.createApplicationContext() // MySpringBeans.groovy import o.sf.jdbc.core.JdbcTemplate import o.sf.jdbc.datasource.DataSourceTransactionManager beans { jdbcTemplate(JdbcTemplate) { dataSource = dataSource } transactionManager(DataSourceTransactionManager) { dataSource = dataSource } } Groovy
  • 15. SPRING WORKS IN MANY LANGUAGES ApplicationContext applicationContext = new AnnotationConfigApplicationContext( ServiceConfiguration.class); // ServiceConfiguration.java @Configuration @ComponentScan @Import(DataSourceConfiguration.class) @EnableTransactionManagement class ServiceConfiguration { @Bean public JdbcTemplate jdbcTemplate(DataSource dataSource) throws Exception { return new JdbcTemplate( dataSource ); } @Bean public PlatformTransactionManager jdbcTransactionManager(DataSource dataSource){ return new JdbcTransactionManager (dataSource ); } } Java
  • 16. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on Delayed again! from 09/2013 to as late as 03/2014! Meanwhile, even has lambas... ... C++
  • 17. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on IDE Support: IntelliJ IDEA has had Java 8 support for a year Eclipse won’t have any until June 2014 (..!!) Eclipse-based Spring Tool Suite (STS) has beta Java 8 support.
  • 18. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on Spring 4.0 to be GA against Developer Preview by end of 2013. Method references are a great fit for Spring! JdbcTemplate jdbcTemplate; // method references private Customer map(ResultSet rs, int rowNum) throws SQLException { return new Customer( rs.getString("name"), rs.getInt("age") ); } // let it satisfy the `RowMapper` functional interface Customer customer = jdbcTemplate.queryForObject( "select name, age from customers ", this::map);
  • 19. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on Spring 4.0 to be GA against Developer Preview by end of 2014. lambas are a great fit for Spring! JdbcTemplate jdbc; Customer customer = jdbc.queryForObject(sql, (rs, rowNum) -> new Customer(rs.getLong("id")));
  • 20. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on Spring 4.0 to be GA against Developer Preview by end of 2014. lambas are a great fit for Spring and Twitter!
  • 21. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on JSR-310 - Date and Time // declarative date format import java.time.*; import org.springframework.format.annotation.*; public class Customer { @DateTimeFormat(iso=ISO.DATE) private LocalDate birthDate; @DateTimeFormat(pattern="M/d/yy h:mm") private LocalDateTime lastContact; }
  • 22. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on Repeatable Annotations @Scheduled(cron = "0 0 12 * * ?") @Scheduled(cron = "0 0 18 * * ?") public void performTempFileCleanup() { ... }
  • 23. SPRING WORKS IN MANY LANGUAGES Java 8 a quick note on Spring 4.0 JDK 6 -> JDK 8 Java EE 5 (with JPA 2.0 feature pack) -> Java EE 7
  • 24. SPRING RUNS WELL ON JAVA EE 7 Spring works well in Java EE environments Supports Java EE 7: Date/Time API, JTA 1.2, JMS 2.0, JPA 2.1, Bean Validation 1.1, the new concurrency API in JSR-236, Servlet 3.1, and WebSockets (JSR 356) Even participated in a few JSRs: the websocket JSR (356) and the Batch JSR (352)
  • 25. SPRING IS WHERE YOU ARE
  • 26. SPRING IS WHERE YOU ARE
  • 27. SPRING IS WHERE YOU ARE
  • 28. SPRING IS WHERE YOU ARE
  • 29. S P R I N G C L O U D A N D Demo
  • 30. SPRING SUPPORTS NOSQL Spring supports all the SQLs: NoSQL, NOSQL, and SQL
  • 31. SIMPLIFIED DATA ACCESS++ Spring Data offers conventional repositories, *Template implementations, unified data access exception handling
  • 32. S P R I N G D ATA J PA R E P O S I TO R I E S Demo
  • 33. S P R I N G D ATA R E D I S C A C H E : Demo
  • 34. SPRING SUPPORTS Surviving the Big Data Wild-West with Spring for Hadoop
  • 35. SPRING SUPPORTS But How Do You Process Data Realtime? @metamarkets founder Michael E. Driscoll:
  • 37. S P R I N G X D A N D P I V O TA L H D Demo
  • 38. SPRING IS.. MESSAGING AND INTEGRATION FRIENDLY Spring’s REST and Security support AsyncRestTemplate Hypermedia Links @RestController Websocket
  • 39. S P R I N G C R M R E S T D E M O Demo
  • 40. SPRING IS EASY TO GET STARTED WITH Boot Autoconfigure Starters CLI Actuator Tools Samples Bootstrap your productivity
  • 41. SPRING SUPPORTS CONVENTION OVER CONFIGURATION
  • 42. SPRING SUPPORTS CONVENTION OVER CONFIGURATION
  • 43. S P R I N G B O O T TO M C AT S A M P L E Demo
  • 44. SPRING IS.. MESSAGING AND INTEGRATION FRIENDLY Spring gets (and sends!) websockets WebSockets delegating to implementations on app servers like GlassFish, Tomcat, and Jetty Supports Sock.js server, superset of WS. higher level STOMP supported on WS supports JSR 356 (javax.websocket.*) support.
  • 45. W E B S O C K E T T R A D E R Demo