spring boot. boot up your development. jeeconf 2015

Post on 04-Aug-2015

161 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Spring Boot.Boot up your development

Sergey Morenets, May 23, 2015

morenets@mail.ru

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

Agenda

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

Goal

Goal

• Development environment• Launch web application• Minimum configuration

Plugins

Plugins

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

Starters concept

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

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

Spring Boot

Spring Boot

Spring Boot

Servlets

Filters

Spring Boot plugin

Spring Boot plugin

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

Hot replace

Hot replace

Dependencies

Dependencies

Customization

Tomcat 7

Jetty

Auto-configuration

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

Properties

Properties

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

Properties

Production

Production

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

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

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

Spring Boot Actuator

Spring Boot Actuator

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

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.

Spring Boot Actuator. Health

Spring Boot Actuator. Health

Spring Boot Actuator. Info

Spring Boot Actuator. Info

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

Spring Boot Actuator.Metrics

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

Spring Boot Actuator. Metrics

Spring Boot Actuator. Custom metrics

Spring Boot Actuator. Metrics

Spring Boot Actuator. Repository

Spring Boot Actuator. Repository

• Dropwizard• Zabbix• JMX messaging

Security

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

Security

Security

Manuals

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

Cons

• Based on Spring Framework• Additional configuration for web servers

Dropwizard

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

Q&A

top related