1

00:00:00.06 --> 00:00:02.04

- [Narrator] My grading

the Spring Boot 2.0



2

00:00:02.04 --> 00:00:04.08

can require a lot of individual changes



3

00:00:04.08 --> 00:00:07.00

to your application, and I

just wanted to run through



4

00:00:07.00 --> 00:00:09.06

some of the other

constructs that have changed



5

00:00:09.06 --> 00:00:12.03

in case you run into

those during an upgrade.



6

00:00:12.03 --> 00:00:14.07

Now, Reactive is one of the big changes,



7

00:00:14.07 --> 00:00:16.02

and it's not one that I think a lot of



8

00:00:16.02 --> 00:00:19.01

people are using previously

in Spring Boot 1.5,



9

00:00:19.01 --> 00:00:22.02

but if you were, there are some changes.



10

00:00:22.02 --> 00:00:23.06

So all of support for Reactive



11

00:00:23.06 --> 00:00:26.04

comes from Spring 5, so you get WebFlux,



12

00:00:26.04 --> 00:00:28.02

and the WebFlux.fn which we have



13

00:00:28.02 --> 00:00:31.00

already talked about

previously in this course.



14

00:00:31.00 --> 00:00:33.06

You also get Reactive Spring Data



15

00:00:33.06 --> 00:00:35.09

for databases like Cassandra, as well as



16

00:00:35.09 --> 00:00:39.05

several other Reactive-capable databases.



17

00:00:39.05 --> 00:00:41.01

You get Reactive Spring Security,



18

00:00:41.01 --> 00:00:42.05

and this is from my buddy Rob Winch,



19

00:00:42.05 --> 00:00:44.09

and this is some powerful, powerful stuff



20

00:00:44.09 --> 00:00:47.01

if you're working in a Reactive world.



21

00:00:47.01 --> 00:00:48.06

The entire Spring Security ecosystem



22

00:00:48.06 --> 00:00:51.06

now works with Reactive

code, and that allows



23

00:00:51.06 --> 00:00:54.05

you to use your consistent

Spring Security constructs



24

00:00:54.05 --> 00:00:57.09

now into another incantation of web.



25

00:00:57.09 --> 00:00:59.05

You also now have Embedded Netty



26

00:00:59.05 --> 00:01:02.09

which is utilized for

these Reactive streams.



27

00:01:02.09 --> 00:01:04.07

As we talked about earlier as well,



28

00:01:04.07 --> 00:01:07.03

you now have support for HTTP/2.



29

00:01:07.03 --> 00:01:11.00

Support comes from Tomcat,

Undertow, and Jetty.



30

00:01:11.00 --> 00:01:12.05

Now, all three of those do require



31

00:01:12.05 --> 00:01:14.08

some level of configuration.



32

00:01:14.08 --> 00:01:16.06

We did an example where Tomcat, where



33

00:01:16.06 --> 00:01:19.02

we had to provide to the Tomcat container



34

00:01:19.02 --> 00:01:22.05

a truststore and a keystore,



35

00:01:22.05 --> 00:01:24.00

and you will find the same thing



36

00:01:24.00 --> 00:01:26.08

for Jetty, as well as Undertow.



37

00:01:26.08 --> 00:01:30.03

This really can be faster

and safer for your customers,



38

00:01:30.03 --> 00:01:33.06

so if you have the

opportunity to move to HTTP/2,



39

00:01:33.06 --> 00:01:35.05

I encourage you to do so.



40

00:01:35.05 --> 00:01:37.05

Your SEO results may also improve



41

00:01:37.05 --> 00:01:39.08

by doing this as more and more sites



42

00:01:39.08 --> 00:01:41.02

are really going to start looking



43

00:01:41.02 --> 00:01:43.05

that you are running on SSL instead



44

00:01:43.05 --> 00:01:47.00

of standard HTTP, and

the list goes on and on.



45

00:01:47.00 --> 00:01:48.07

There's also been some tooling changes



46

00:01:48.07 --> 00:01:50.00

within Spring Boot.



47

00:01:50.00 --> 00:01:51.04

The Gradle plugin, for instance,



48

00:01:51.04 --> 00:01:53.04

got a complete rewrite,

so if you're using Gradle,



49

00:01:53.04 --> 00:01:57.06

instead of Maven, be aware

that the Gradle plugin changed,



50

00:01:57.06 --> 00:01:58.06

and you might just inspect some



51

00:01:58.06 --> 00:02:01.01

of your builds as you start out.



52

00:02:01.01 --> 00:02:04.00

You have Kotlin support

for version 1.2 of Kotlin.



53

00:02:04.00 --> 00:02:06.04

If you haven't messed

with Kotlin as a language,



54

00:02:06.04 --> 00:02:09.02

I encourage you to do so.



55

00:02:09.02 --> 00:02:11.01

It's kind of a fun language to code in,



56

00:02:11.01 --> 00:02:12.08

but in addition, it is very powerful



57

00:02:12.08 --> 00:02:14.02

when dealing with some of the constructs



58

00:02:14.02 --> 00:02:18.06

like AMET ability that we

now are getting in Spring 5.



59

00:02:18.06 --> 00:02:21.00

And we now get Animated ASCII art,



60

00:02:21.00 --> 00:02:23.06

because that is so

important during start-up.



61

00:02:23.06 --> 00:02:25.07

And I bring it up as a

little bit of a joke,



62

00:02:25.07 --> 00:02:29.05

but really it's about

providing you with value.



63

00:02:29.05 --> 00:02:31.03

In my every-day world, I use tools



64

00:02:31.03 --> 00:02:32.07

that are written on Spring Boot



65

00:02:32.07 --> 00:02:35.01

as well as write my own, and it's amazing



66

00:02:35.01 --> 00:02:36.08

some of the ASCII art that gets brought



67

00:02:36.08 --> 00:02:38.06

into these applications, and it



68

00:02:38.06 --> 00:02:40.08

becomes really kind of cool

as you're hopping around,



69

00:02:40.08 --> 00:02:42.07

because then you can see in the logs



70

00:02:42.07 --> 00:02:44.06

which application is

running in case you have



71

00:02:44.06 --> 00:02:46.02

some kind of a mental block; you're like,



72

00:02:46.02 --> 00:02:47.03

oh, what server was I looking at?



73

00:02:47.03 --> 00:02:49.08

You can see it in the

logs, in that ASCII art.



74

00:02:49.08 --> 00:02:54.01

And the animated, it's

fun, but OK it's there.



75

00:02:54.01 --> 00:02:56.09

Now the list goes on from

there, and the documentation



76

00:02:56.09 --> 00:02:58.09

does spell out all of the changes,



77

00:02:58.09 --> 00:03:01.05

but some of the big ones that

I think you may touch on:



78

00:03:01.05 --> 00:03:04.06

Data Hibernate has been

upgraded and changed,



79

00:03:04.06 --> 00:03:08.07

JdbcTemplate, this one's big;

you now by default get an



80

00:03:08.07 --> 00:03:12.08

auto-configured, named

parameter JdbcTemplate



81

00:03:12.08 --> 00:03:15.02

which is much more secure when dealing



82

00:03:15.02 --> 00:03:17.07

with things like SQL injection prevention.



83

00:03:17.07 --> 00:03:19.06

There's some changes to Redis, and Flyway



84

00:03:19.06 --> 00:03:21.07

if you're using that

for database management.



85

00:03:21.07 --> 00:03:24.04

Again, take a look at the

documentation on that.



86

00:03:24.04 --> 00:03:26.04

Web Context path logging, so this is



87

00:03:26.04 --> 00:03:28.04

kind of powerful when you're looking



88

00:03:28.04 --> 00:03:31.00

at the logs at the start-up

of your application,



89

00:03:31.00 --> 00:03:33.06

and you're like OK,

where's the root context.



90

00:03:33.06 --> 00:03:35.07

You now will see that in the log;



91

00:03:35.07 --> 00:03:37.02

there's been some

changes that we've talked



92

00:03:37.02 --> 00:03:40.06

about with JSON, and we

saw earlier with JSON B,



93

00:03:40.06 --> 00:03:43.06

Thymeleaf upgrades and Thymeleaf changes.



94

00:03:43.06 --> 00:03:45.00

If you're using Quartz, and I've used



95

00:03:45.00 --> 00:03:47.09

Quartz professionally

in many applications,



96

00:03:47.09 --> 00:03:50.05

you now get some

auto-configuration around that.



97

00:03:50.05 --> 00:03:52.01

So if you're using Quartz applications



98

00:03:52.01 --> 00:03:53.09

for timed events that happened,



99

00:03:53.09 --> 00:03:55.06

take a look at that auto-config,



100

00:03:55.06 --> 00:03:58.02

it may save you some of

your existing config,



101

00:03:58.02 --> 00:03:59.04

and it may give you a little bit more



102

00:03:59.04 --> 00:04:02.00

continuity with the way that Quartz works



103

00:04:02.00 --> 00:04:05.01

in relationship to your other

Spring Boot applications.



104

00:04:05.01 --> 00:04:06.06

And all of the testing changes that



105

00:04:06.06 --> 00:04:09.02

we have already seen throughout Spring 5.



106

00:04:09.02 --> 00:04:11.00

You get all of that within Spring Boot



107

00:04:11.00 --> 00:04:13.02

and a few other little bells and whistles



108

00:04:13.02 --> 00:04:16.00

that may make your life

easier going forward.



109

00:04:16.00 --> 00:04:18.08

So all in all, I think Spring

Boot 2 is a great improvement,



110

00:04:18.08 --> 00:04:20.09

and I think that it's

something you should look at



