spring boot. boot up your development. jeeconf 2015

55
Spring Boot. Boot up your development Sergey Morenets, May 23, 2015 [email protected]

Upload: strannik2013

Post on 04-Aug-2015

160 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot.Boot up your development

Sergey Morenets, May 23, 2015

[email protected]

Page 2: Spring Boot. Boot up your development. JEEConf 2015

About author

• Works in IT since 2000• 11 years of Java SE/EE experience• Multiple speaker at Java User Group• Founder of http://it-simulator.com• Author of “Main Java programming errors”

and “Development of Java applications” books

Page 3: Spring Boot. Boot up your development. JEEConf 2015

Agenda

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

Page 4: Spring Boot. Boot up your development. JEEConf 2015

Goal

Page 5: Spring Boot. Boot up your development. JEEConf 2015

Goal

• Development environment• Launch web application• Minimum configuration

Page 6: Spring Boot. Boot up your development. JEEConf 2015

Plugins

Page 7: Spring Boot. Boot up your development. JEEConf 2015

Plugins

Page 8: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot

• Stand-alone Spring applications • Embed Tomcat or Jetty directly• Automatically Spring configuration• Absolutely no code generation and no requirement for XML configuration• Convention-over-configuration• Focus on business features and less oninfrastructure

Page 9: Spring Boot. Boot up your development. JEEConf 2015

Starters concept

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

Page 10: Spring Boot. Boot up your development. JEEConf 2015

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 11: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot

Page 12: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot

Page 13: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot

Page 14: Spring Boot. Boot up your development. JEEConf 2015

Servlets

Page 15: Spring Boot. Boot up your development. JEEConf 2015

Filters

Page 16: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot plugin

Page 17: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot plugin

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

Page 18: Spring Boot. Boot up your development. JEEConf 2015

Hot replace

Page 19: Spring Boot. Boot up your development. JEEConf 2015

Hot replace

Page 20: Spring Boot. Boot up your development. JEEConf 2015

Dependencies

Page 21: Spring Boot. Boot up your development. JEEConf 2015

Dependencies

Page 22: Spring Boot. Boot up your development. JEEConf 2015

Customization

Page 23: Spring Boot. Boot up your development. JEEConf 2015

Tomcat 7

Page 24: Spring Boot. Boot up your development. JEEConf 2015

Jetty

Page 25: Spring Boot. Boot up your development. JEEConf 2015

Auto-configuration

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

Page 26: Spring Boot. Boot up your development. JEEConf 2015

Properties

Page 27: Spring Boot. Boot up your development. JEEConf 2015

Properties

Page 28: Spring Boot. Boot up your development. JEEConf 2015

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 29: Spring Boot. Boot up your development. JEEConf 2015

Properties

Page 30: Spring Boot. Boot up your development. JEEConf 2015

Production

Page 31: Spring Boot. Boot up your development. JEEConf 2015

Production

• Industry not ready• Limited web servers support• No UI• Spring Boot knowledge

Page 32: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator

• Helps manage and monitor applications when pushed to production

• Accessible via HTTP, JMX or remote shell• You can't manage what you can't measure

Page 33: Spring Boot. Boot up your development. JEEConf 2015

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 34: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator

Page 35: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator

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

Page 36: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Health

Indicators

DiskSpaceHealthIndicator Checks for low disk space.

DataSourceHealthIndicator Checks that a connection to DataSource can be obtained.

MongoHealthIndicator Checks that a Mongo database is up.

RabbitHealthIndicator Checks that a Rabbit server is up.

RedisHealthIndicator Checks that a Redis server is up.

SolrHealthIndicator Checks that a Solr server is up.

Page 37: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Health

Page 38: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Health

Page 39: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Info

Page 40: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Info

Page 41: Spring Boot. Boot up your development. JEEConf 2015

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 42: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator.Metrics

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

Page 43: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Metrics

Page 44: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Custom metrics

Page 45: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Metrics

Page 46: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Repository

Page 47: Spring Boot. Boot up your development. JEEConf 2015

Spring Boot Actuator. Repository

• Dropwizard• Zabbix• JMX messaging

Page 48: Spring Boot. Boot up your development. JEEConf 2015

Security

• Mostly local usage• Read-only access• Integration with Spring Security

Page 49: Spring Boot. Boot up your development. JEEConf 2015

Security

Page 50: Spring Boot. Boot up your development. JEEConf 2015

Security

Page 51: Spring Boot. Boot up your development. JEEConf 2015

Manuals

Page 52: Spring Boot. Boot up your development. JEEConf 2015

Pro

• Reduces deployment and development time

• No configuration files• Auto-configuration• Maven, Gradle & Ant integration• Embedded servers• Multiple technologies support• Monitoring & management out-of-box

Page 53: Spring Boot. Boot up your development. JEEConf 2015

Cons

• Based on Spring Framework• Additional configuration for web servers

Page 54: Spring Boot. Boot up your development. JEEConf 2015

Dropwizard

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

Page 55: Spring Boot. Boot up your development. JEEConf 2015

Q&A