Top Banner
Spring Boot. Boot up your development Sergey Morenets, March 7, 2015 [email protected]
43
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Spring Boot. Boot up your development

Spring Boot.Boot up your development

Sergey Morenets, March 7, 2015

[email protected]

Page 2: Spring Boot. Boot up your development

About author

• Works in IT since 2000• 11 years of Java SE/EE experience• Java lecturer• Multiple speaker at Java User Group• Winner of 2013 Jboss Community

Recognition Award https://www.jboss.org/jbcra

Page 3: Spring Boot. Boot up your development

Agenda

• Overview• Spring Boot features• Setup & configuration• Q&A

Page 4: Spring Boot. Boot up your development

Goal

Page 5: Spring Boot. Boot up your development

Goal

• Development environment• Launch web application• Minimum configuration

Page 6: Spring Boot. Boot up your development

Goal

Page 7: Spring Boot. Boot up your development

Spring Boot

• Stand-alone Spring applications • Embed Tomcat or Jetty directly (no need

to deploy WAR files)• Automatically Spring configuration• Absolutely no code generation and no requirement for XML configuration• Convention-over-configuration• Focus on business features and less oninfrastructure

Page 8: Spring Boot. Boot up your development

Starters concept

• Aggregate modules• Trusted versions of libraries• Similar to micro-service architecture

Page 9: Spring Boot. Boot up your development

Starters concept

• spring-boot-starter-actuator• spring-boot-starter-data-jpa• spring-boot-starter-jdbc• spring-boot-starter-jersey• spring-boot-starter-logging• spring-boot-starter-mobile• spring-boot-starter-redis• spring-boot-starter-test• spring-boot-starter-web

Page 10: Spring Boot. Boot up your development

Spring Boot

Page 11: Spring Boot. Boot up your development

Spring Boot

Page 12: Spring Boot. Boot up your development

Spring Boot

Page 13: Spring Boot. Boot up your development

Servlets

Page 14: Spring Boot. Boot up your development

Filters

Page 15: Spring Boot. Boot up your development

Spring Boot plugin

Page 16: Spring Boot. Boot up your development

Spring Boot plugin

• spring-boot:run• spring-boot:repackage

Page 17: Spring Boot. Boot up your development

Hot replace

Page 18: Spring Boot. Boot up your development

Hot replace

Page 19: Spring Boot. Boot up your development

Dependencies

Page 20: Spring Boot. Boot up your development

Dependencies

Page 21: Spring Boot. Boot up your development

Customization

Page 22: Spring Boot. Boot up your development

Tomcat 7

Page 23: Spring Boot. Boot up your development

Jetty

Page 24: Spring Boot. Boot up your development

Auto-configuration

• AopAutoConfiguration• JpaRepositoriesAutoConfiguration• HibernateJpaAutoConfiguration• DataSourceAutoConfiguration• JmsTemplateAutoConfiguration• MongoAutoConfiguration• RedisAutoConfiguration• WebMvcAutoConfiguration• SecurityAutoConfiguration

Page 25: Spring Boot. Boot up your development

Properties

Page 26: Spring Boot. Boot up your development

Properties

Page 27: Spring Boot. Boot up your development

Properties

Class Prefix

MessageSourceAutoConfiguration spring.messages

BatchProperties spring.batch

ElasticsearchProperties spring.data.elasticsearch

FreeMarkerProperties spring.freemarker

JacksonProperties spring.jackson

DataSourceProperties spring.datasource

JerseyProperties spring.jersey

MailProperties spring.mail

MongoProperties spring.data.mongodb

SecurityProperties security

WebMvcProperties spring.mvc

Page 28: Spring Boot. Boot up your development

Properties

Page 29: Spring Boot. Boot up your development

Spring Boot Actuator

• Helps manage and monitor applications when pushed to production

• Accessible via HTTP, JMX or remote shell

Page 30: Spring Boot. Boot up your development

Spring Boot Actuator

• Series of endpoints to help manage your Spring application• Reads properties and spring beans and then returns a JSON view• Allows direct access to non functional

application information without having to open an IDE or a command prompt

Page 31: Spring Boot. Boot up your development

Spring Boot Actuator

Page 32: Spring Boot. Boot up your development

Spring Boot Actuator

• /info• /health• /beans• /env• /dump• /metrics• /trace• /autoconfigurationreport• /shutdown

Page 33: Spring Boot. Boot up your development

Spring Boot Actuator. Health

Page 34: Spring Boot. Boot up your development

Spring Boot Actuator. Health

Page 35: Spring Boot. Boot up your development

Spring Boot Actuator.Metrics

• Includes a metrics service with ‘gauge’ and ‘counter’ support

• A ‘gauge’ records a single value; and a ‘counter’ records a delta (an increment or decrement)

• Metrics for all HTTP requests are automatically recorded

Page 36: Spring Boot. Boot up your development

Spring Boot Actuator.Metrics

• System metrics• Datasource metrics• WebServer metrics• Custom metrics

Page 37: Spring Boot. Boot up your development

Spring Boot Actuator. Metrics

Page 38: Spring Boot. Boot up your development

Spring Boot Actuator. Custom metrics

Page 39: Spring Boot. Boot up your development

Spring Boot Actuator. Metrics

Page 40: Spring Boot. Boot up your development

Pro

• No configuration files• Auto-configuration• Maven, Gradle & Ant integration• Embedded servers: Tomcat, Jetty and

Undertow• Configuration for multiple Java

technologies• Monitoring & management out-of-box

Page 41: Spring Boot. Boot up your development

Cons

• Based on Spring Framework• Additional configuration for web servers

Page 42: Spring Boot. Boot up your development

Dropwizard

• Lightweight alternative• REST web services support using Jersey• Embedded servers• Logging and validation• Templating systems• Metrics library

Page 43: Spring Boot. Boot up your development

Q&A