Slide 1

Slide 1 text

© Copyright 2020 Pivotal Software, Inc. All rights Reserved. From Spring Boot 2.2 to Spring Boot 2.3 Stéphane Nicoll - @snicoll

Slide 2

Slide 2 text

2019 Edition Recap October 7-10 2019 Austin Convention Center

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Spring Boot 2.2

Slide 7

Slide 7 text

Java 13 https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions#jdk-version-range

Slide 8

Slide 8 text

Dependency management Upgrades

Slide 9

Slide 9 text

New Features

Slide 10

Slide 10 text

Important Features

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

RSocket

Slide 13

Slide 13 text

RSocket

Slide 14

Slide 14 text

Health Indicator Group

Slide 15

Slide 15 text

Health Indicator Group management.endpoint.health.group.liveness.include=ping management.endpoint.health.group.readiness.include=db,redis GET /actuator/health/liveness GET /actuator/health/readiness

Slide 16

Slide 16 text

Immutable Configuration Properties

Slide 17

Slide 17 text

Immutable Configuration Properties @ConfigurationProperties("acme") @ConstructorBinding public class AcmeProperties { private final Duration timeout; private final DataSize bufferSize; private final Security security; public AcmeProperties(@DefaultValue("10s") Duration timeout, DataSize bufferSize, Security security) { this.timeout = timeout; this.bufferSize = bufferSize; this.security = security; } ... }

Slide 18

Slide 18 text

@ConfigurationProperties("acme") @ConstructorBinding data class AcmeProperties(val timeout: Duration = Duration.ofSeconds(10), val bufferSize: DataSize?, val security: Security) { ... } https://github.com/snicoll/demo-immutable-config-props Immutable Configuration Properties

Slide 19

Slide 19 text

JUnit 5

Slide 20

Slide 20 text

JUnit 5 // @ExtendWith(SpringExtension.class) @SpringBootTest class MyApplicationTests { @Test void resourceFileCreated(@TempDir Path tmpDir) { // ... } }

Slide 21

Slide 21 text

Performance

Slide 22

Slide 22 text

Performance • Startup time • Lazy initialization • Runtime performance

Slide 23

Slide 23 text

start.spring.io

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Statistics

Slide 28

Slide 28 text

How many projects do we generate a year? 10K 100K 1M+

Slide 29

Slide 29 text

How many projects do we generate a year? 10K 100K 1M+ ✔ month

Slide 30

Slide 30 text

What are the top 3 countries?* India US China * Sep 2018 - Sep 2019 #15

Slide 31

Slide 31 text

What’s the client split?* Web IDE CLI * Sep 2018 - Sep 2019

Slide 32

Slide 32 text

What’s the client split?* Web IDE CLI * Sep 2018 - Sep 2019 (without China)

Slide 33

Slide 33 text

⚡To Spring Boot 2.3⚡

Slide 34

Slide 34 text

Spring Framework 5.3

Slide 35

Slide 35 text

Spring Framework 5.3 • Preparing for JDK 17 LTS • Embracing GraalVM native images • Wrap-up 5.x themes (RSocket, Coroutines)

Slide 36

Slide 36 text

Spring Boot 2.3

Slide 37

Slide 37 text

Spring Boot 2.3 • Container Support with Cloud Native Buildpacks • Kubernetes Support • Dependency Upgrades (Spring Data) • 6 months release cadence (Apr 2020)

Slide 38

Slide 38 text

Support Policy

Slide 39

Slide 39 text

Support Policy October 2018 Spring Boot 2.1 GA August 2019 Spring Boot 1 EOL January 2020 Spring Framework 5.0/4.3 last release October 2019 Spring Boot 2.2 GA

Slide 40

Slide 40 text

April 2020 Spring Boot 2.3 GA October 2020 Spring Framework 5.3 / Spring Boot 2.4 GA December 2020 Spring Framework 5.1/4.3 EOL November 2020 Spring Boot 2.1 EOL Support Policy

Slide 41

Slide 41 text

© Copyright 2020 Pivotal Software, Inc. All rights Reserved. From Spring Boot 2.2 to Spring Boot 2.3 & 2.4 @snicoll Thanks!