Java is not dead and Mongo really is Web-Scale! Join us for a fast-paced, hands-on session where we will cover the new SpringIO Platform and specifically Spring Boot. We will also discuss Mongo DB and demonstrate its clustering, replication and partitioning capabilities.
2. How do you get Bootiful?
• Start - start.spring.io
• IO – It’s not you, use IO
• Boot - you know you want to!
• Data – It’s necessary for the REST of the show
Page 2
3. start.spring.io
• Use this website to create a base Spring-enabled Maven/Gradle
project
• Once you download the .zip, you’ll see you get:
• pom.xml/build.gradle
• Spring-dependencies utilizing IO Platform
• src/main/java, src/main/resources & src/test/java directory structure
• Spring-boot enabled, annotation based @Configuration class
• JUnit context-aware test case
Page 3
4. IO Platform
• Cohesive, Versioned Platform of all Spring projects and
dependencies
• Aims to reduce version dependency nightmares within Spring
projects and transitive dependencies
• Just think of it as a BOM for all Spring projects and their
dependencies
• Example of versioning it wraps into a single versioned product:
– http://docs.spring.io/platform/docs/1.1.1.RELEASE/reference/html
single/#appendix-dependency-versions
Page 4
5. Boot
• Easily create ‘runnable’ Spring applications
• Embed Tomcat or Jetty directly (no need to deploy WAR files)
• Provides ‘starter’ POMs to simply Maven/Gradle configuration
• Provides production-ready features for metrics, health checks,
and external configurations
• Absolutely no code generation or requirement for XML
• Actuator
– Provides JMX/REST endpoints for monitoring
– A list of them can be found at: http://docs.spring.io/spring-
boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-
ready-endpoints
Page 5
6. Data / Data REST
• Easy to use data access for many different technologies
(includes relational, non-relational, map reduce and cloud
data services)
• Query definition can be derived from method name
– Examples: http://docs.spring.io/spring-
data/jpa/docs/1.7.0.RELEASE/reference/html/#jpa.query-
methods
• Single annotation, @RestRepositoryRestResource, on your
Repository provides REST support for CRUD options (including
custom-defined methods)
• REST calls include validation support using JSR-303
• REST uses HAL to render responses
(https://tools.ietf.org/html/draft-kelly-json-hal-06)
Page 6