Spring Tips: Spring Boot 3.2

  Рет қаралды 77,821

SpringDeveloper

SpringDeveloper

Күн бұрын

Пікірлер: 67
@LukasBradley
@LukasBradley Жыл бұрын
Please use Chapters on your videos. Thanks!
@joachimdietl6737
@joachimdietl6737 Жыл бұрын
like they do in the motorcycle club?
@xqdd9214
@xqdd9214 3 ай бұрын
[00:16] Spring Boot 3.2 brings many new features including support for virtual threads and Project Loom, improved observability support, overloadable SSL support, and more. Spring Boot 3.2 brings many new features including virtual threads and Project Loom. Java 21 is an important feature of Spring Boot 3.2. Java 21 introduces some new syntax changes such as closed types, pattern matching, smart switch expressions, and records. Java 21 is called data-oriented programming and aims to improve the performance of Java in large monolithic applications. [10:13] It is very convenient to use string formatting and multi-line variables, and there are new features such as pattern matching and deconstruction operators. String formatting and multi-line variables are convenient options. New features include records, sealed types, smart switch expressions, and pattern matching. There is no deconstruction operator yet, but it is under development. Project Loom virtual threads are an important feature in Java 21. [20:27] In this snippet, we create a collection that skips duplicates and use a thread to log the name of the current thread and sleep for 100 milliseconds. We create a collection that skips duplicates. We use a thread to log the name of the current thread. We sleep for 100 milliseconds. We demonstrate the use of virtual threads to execute Java code. [30:41] In Spring Boot 3.2, we will use Java 21, Maven, and some supporting libraries to build an application that communicates with a SQL database. We use the test containers API to start a Docker image. We use the spring boot starter jdbc dependency to connect to the PostgreSQL database. We start the PostgreSQL container by adding specific configuration. [40:57] Using the declarative interfaces in Spring Boot 3.0, we can simplify the code even more and provide a cat fact for a given URL request. We can use the new JDBC and REST clients to call the endpoints. Using Project Loom and Drava 21, we can get consistent virtual thread integration in different layers of a Spring application. This approach has the convenience of blocking APIs without losing usability. You can use declarative interfaces to implement cat facts for a given URL request. [51:09] There is an interface in the Spring framework called SmartLifeCycle that can be used to represent the methods of a typical Spring lifecycle. SmartLifeCycle is a smarter version for user consumption. The methods of SmartLifeCycle correspond to the checkpoint methods. You can use SmartLifeCycle to manage the start and stop of an application. In this example, by implementing the SmartLifeCycle interface, you can implement the start and stop functionality of the application. [01:01:23] A unique key-value pair is generated through a file, and a self-signed SSL certificate is configured. Write numbers in a file, increment them each time they run, and write them to the file. The generated key-value pairs are unique and are used to show changes over time. A self-signed SSL certificate is configured and used by specifying port number 8443. [01:11:38] On the local machine, we can use Zipkin to view the distributed tracing graph Use Docker compose to start the Zipkin instance Increase the sampling probability in the application code Use aop to support adding annotations on the classpath to display the trace ID and span ID Use Zipkin to view the request log and jumps between services
@jamesrooney931
@jamesrooney931 Жыл бұрын
0:01:04 Java 21 & Data Oriented Programming 0:11:27 Virtual Threads (LOOM) 0:28:40 JDBC Client & REST Client 0:44:18 Co-Ordinated Restore at Checkpoint (CRaC) 0:57:20 Better Security with SSL 1:05:14 Observability
@nikhilvijay6022
@nikhilvijay6022 11 ай бұрын
Doing God's work
@umutylmaz7800
@umutylmaz7800 Жыл бұрын
Great video Josh thanks! I'm leaving below the topics covered in the video. 0:00 Introduction 1:00 Data Oriented Programming 11:25 Virtual Threads 28:40 Jdbc & Rest Client 44:15 Coordinated Restore At Checkpoint 57:16 Security With SSL 1:05:10 Observability 1:21:01 Onward
@florianpopa8848
@florianpopa8848 Жыл бұрын
Thank you for sharing this! Having worked as a PHP developer for six years until 2018, I've experienced its limitations firsthand. Since switching to Java, I've found it to be a significantly better experience.
@chandanveeppa8081
@chandanveeppa8081 Жыл бұрын
Powerful content! Thanks a lot for putting so much effort into creating this demo. Saves us developers a ton of time skimming though all those reference docs and release notes. Good to see Spring getting so many useful and interesting features.
@bawaparampreet24
@bawaparampreet24 Жыл бұрын
11:27 : Virtual Threads 28:35 : Jdbc Client & Rest Client
@joachimdietl6737
@joachimdietl6737 Жыл бұрын
Josh you are the best! And of course we want the new JDK request factory, so let'S say new blablabla very good!
@kenwang8595
@kenwang8595 Жыл бұрын
Great video! Just in span of one hour, I feel that I have learned so much! Many thanks!
@arnaudpoutieu1331
@arnaudpoutieu1331 Жыл бұрын
Many thanks for your energy and sharing such passion with us!
@Mateusz-xr9qw
@Mateusz-xr9qw Жыл бұрын
That was very great start of a day. Awesome video ❤
@SumitSharma864
@SumitSharma864 Жыл бұрын
Thanks a lot informative and useful video. Really helpful to understand whats new there before upgrade.
@DanbyArg
@DanbyArg Жыл бұрын
Thanks for all of the great content Josh 👍
@nagamohank2244
@nagamohank2244 Жыл бұрын
Thanks! Josh for the Tips
@CheeseStickzZ
@CheeseStickzZ 11 ай бұрын
23:56 This made me giggle for a whole hour. I agree Php is the biggest mess in the history of web development
@konstantingromov6485
@konstantingromov6485 Жыл бұрын
Josh talk is great as usual. One small thing I've noticed - why @Controller+@ResponseBody but not @RestController in demo examples?
@coffeesoftware
@coffeesoftware Жыл бұрын
because what Im doing isn't REST :) it's HTTP with JSON. If I used HATEOAS and hypermedia, then it'd be proper REST. it's also more consistent with RSocket, GraphQL, web sockets, MVC, etc., uses of `@Controller` in the rest of the stack.
@vukotici32
@vukotici32 Жыл бұрын
set('springCloudVersion', "2023.0.0-RC1") i am sad to see that the sprng cloud version is not ready for spring boot 3.2 we can not update
@Gohel95
@Gohel95 Жыл бұрын
Hey @josh at 36:00 you use @Responsebody and @Controller is there any reason for not using @Restcontroller?
@coffeesoftware
@coffeesoftware Жыл бұрын
well spotted ! the reason is because... it's not REST :) I'm not actually using hypermedia and HATEOAS and the like. I'm only at level 2 on Dr. Leonard Richardson's Maturity Model. I got tired of having to juggle that conflict in my head and I embrace the reality: it's just an HTTP + JSON endpoint. Also, Spring has a ton of uses for @Controller. It's just more thematically consistent to use it all over the place. If there was a `@GraphqlController`, and an `@RSocketController`, and an `@MvcController`, etc., then maybe I'd be more inclined.
@Gohel95
@Gohel95 Жыл бұрын
you're a great man @@coffeesoftware. Thank you so much for the explanation.
@javaspringdev
@javaspringdev Жыл бұрын
Thanks Josh that's a great video
@javisartdesign
@javisartdesign Жыл бұрын
thaaaaanks! greatest tips ever
@DenisKorolevR
@DenisKorolevR Жыл бұрын
Thank you for your video! But it looks like that Sleuth in Spring Boot 2 was easier to work with.
@saintpaulbassanagavi3
@saintpaulbassanagavi3 Жыл бұрын
Incredible video
@myanch200
@myanch200 Жыл бұрын
woww Java has changed a lot
@chrispure7461
@chrispure7461 Жыл бұрын
oauth2 token/refresh suport for restclient?
@marcinkunert
@marcinkunert Жыл бұрын
Is there a way to prevent data.sql / schema.sql being run on restart? Similary to what @RestartScope does.
@asishkumarsatapathy3466
@asishkumarsatapathy3466 11 ай бұрын
Chapters please sir... Anywau thanks for awesome content!! Cheers 🍻
@salo.
@salo. Жыл бұрын
Can I use Graal with default JDK 21? OR I should always download and set Special Graal 21 JDK ?
@coffeesoftware
@coffeesoftware Жыл бұрын
you need the special GraalVM (or Liberica NIK) distribution. It's amazing: Java is an open source distribution. GraalVM is a fork of OpenJDK with some extra features. There are many OpenJDK distributions, GraalVM is but one of many. But did you know that GraalVM itself has forks and distributions? Liberica NIK (from BellSoft) is one such distribution.
@salo.
@salo. Жыл бұрын
I can't see the answer, somewhy.
@WaterOfPanela
@WaterOfPanela 11 ай бұрын
why is gradle so overlooked?...
@avalagum7957
@avalagum7957 Жыл бұрын
Does Spring Boot 3.2 give us a VirtualThreadPerTaskExecutor bean or do we have to create one?
@hendisantika
@hendisantika Жыл бұрын
Like this: spring.threads.virtual.enabled = true
@avalagum7957
@avalagum7957 Жыл бұрын
@@hendisantika did you really read my question? 🙂
@avalagum7957
@avalagum7957 Жыл бұрын
Answer to self: no.There's only 1 bean of type Executor in the Spring application context. When a runnable, which prints out the current thread name, is run by it, it prints out something like task-1. The thread used by Tomcat in spring webmvc is a virtual thread (its thread name is like VirtualThread[#73,tomcat-handler-0]/runnable@ForkJoinPool-1-worker-1). That means there's no need to create a VirtualThreadPerTaskExecutor in a spring boot based web app.
@kennethcarvalho3684
@kennethcarvalho3684 Жыл бұрын
Problem in IT field is information overload. How can mind keep all this information
@TaiChiSWAG
@TaiChiSWAG Жыл бұрын
until one practically apply one of the new features
@samiulalomsium-t7i
@samiulalomsium-t7i Жыл бұрын
Don't be overwhelmed. Instead, you have to decide which core information you must need and most probably learn it from an official doc or book. Because from reading, you have your available time to consume the information in your way. But in video, you have to follow the creator's style of timeline to consume information, which in most cases won't be within your required time demand.
@kennethcarvalho3684
@kennethcarvalho3684 Жыл бұрын
@@samiulalomsium-t7i thanks
@vishnuvs6121
@vishnuvs6121 Жыл бұрын
Did you use ChatGPT to generate the thumbnail?
@hobaca1465
@hobaca1465 Жыл бұрын
Interesting KZbin thumbnail - String Boot and SSSL... all good, midjourney still has aways to go.
@MarianSchubert
@MarianSchubert Жыл бұрын
Thanks!
@rtb8085
@rtb8085 11 ай бұрын
I think you have a bit of confusion about the meaning of Tuple conceptually: tuple is a pair, and not a container for single element !
@lompatin
@lompatin Жыл бұрын
String boot?
@pouyakhoshkhoo3855
@pouyakhoshkhoo3855 Жыл бұрын
Thank you
@karthiksundaram544
@karthiksundaram544 7 ай бұрын
@maksimmuruev423
@maksimmuruev423 Жыл бұрын
Testcontainers support is kinda bad.. you have to put those lines for container control in each test suite.. is it even wise? I mean test itself probably should not care about which db connection in use embeddeddb or docker.. also conversion from embedded to testcontainers is painful in this way. I've found a way do it without update each single testsuite but its kinda hack anyway. Will be good if spring boot allow this just setup in separated config file or maybe just one annotation in testconfig..
@shelajev
@shelajev Жыл бұрын
Modern Spring Boot does include exactly that. You can declare Testcontainers containers as beans, so their lifecycle is handled automatically, use `@ServiceConnection` annotation to automatically instruct Spring Boot to use the annotated bean as the default datastore or message broker (there's a whole set of supported technologies) so the connection details are handled automatically too. You also can put the container beans in a @TestConfiguration, and instrument your test classes with using that without changing the tests themselves. And you can even run the app itself with this configuration, so you get the environment for the development setup. Here's a video where we explored these concepts: kzbin.info/www/bejne/bZqTdJKHjNWGpJo
@dimitricharles9784
@dimitricharles9784 Жыл бұрын
Php the 1 trillion dollar mistake 😂😂😂😂😂
@CodeJava
@CodeJava 5 күн бұрын
I think this video's thumbnail was created by ChatGPT. But thankfully the video was not :D
@CheeseStickzZ
@CheeseStickzZ 11 ай бұрын
I just came here to say I hate reactive programming with a passion, thank the heavens for project loom. Us old school java developers (8 years+) cannot stand the reactive paradigm
@shakib_04
@shakib_04 Жыл бұрын
thumbnail likely generated with AI
@karthiksundaram544
@karthiksundaram544 7 ай бұрын
😂
@KhodeCamp
@KhodeCamp Жыл бұрын
Thank you so much for the tips!
@karthiksundaram544
@karthiksundaram544 7 ай бұрын
Spring Tips: Virtual Threads
50:31
SpringDeveloper
Рет қаралды 16 М.
Spring Tips: DataSources
57:40
SpringDeveloper
Рет қаралды 15 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Spring Tips: Spring AI
22:48
SpringDeveloper
Рет қаралды 65 М.
Spring Tips: Spring Modulith
37:39
SpringDeveloper
Рет қаралды 32 М.
Spring Tips: Spring Data JDBC
27:36
SpringDeveloper
Рет қаралды 23 М.
Spring Tips: Spring Boot Testjars
34:25
SpringDeveloper
Рет қаралды 10 М.
Spring Tips: Spring's Application Event Subsystem
20:23
SpringDeveloper
Рет қаралды 16 М.
Spring Tips: Spring Statemachine
59:46
SpringDeveloper
Рет қаралды 55 М.
Spring Tips: Making the Joyful Jump to Java 21
47:53
SpringDeveloper
Рет қаралды 31 М.
Spring Tips: Debugging Reactor Applications
53:28
SpringDeveloper
Рет қаралды 21 М.
Spring Tips: go fast with Spring Boot 3.1
17:58
SpringDeveloper
Рет қаралды 54 М.
Spring Tips: The Spring Authorization Server
22:21
SpringDeveloper
Рет қаралды 20 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН