강의

멘토링

로드맵

BEST
Programming

/

Back-end

Toby's Spring 6 - Understanding and Principles

By looking at the process of creating the Spring Framework, we will find out the principles that will help you understand and use Spring well. Through this, we will also look at how the code of the application written by the developer should be created.

(5.0) 172 reviews

2,811 learners

  • tobyilee
토비의스프링
스프링_원리
저자 직강
Java
Spring

Reviews from Early Learners

What you will learn!

  • Core principles of Spring technology

  • Object-oriented design principles and design patterns

  • How to verify code using tests

  • Continuous improvement of code through refactoring

  • Dependency injection, templates, exceptions, service abstraction

The Spring Guru is back!
Toby's Spring 6 Returns After 14 Years

<Toby's Spring 3>, which was published a long time ago and was loved by many developers, is back after 14 years!

This course captures the core content covered in Toby's Spring 3.1, reorganized for Spring 6 and the latest Java versions . Focusing on example code that showcases popular approaches and techniques, you'll gain an in-depth understanding of the latest Spring Framework.


Are you having these concerns? 🤔

Since Spring provides such a vast range of technologies, it takes a lot of time to find the functions you need and learn how to use them .

While it's great that Spring offers a variety of options as a flexible framework, it can be a burden to consider many factors to find the optimal solution .

I want to easily verify that Spring Framework functions are working properly, and develop the ability to respond to unexpected problems more quickly and accurately .


Not how to use it
Why you should learn how it works

Spring is a flexible and highly extensible framework . Depending on the characteristics of the application being developed, it's important to select the necessary technologies and Spring features. Sometimes, you may need to extend Spring's functionality to suit your application. While Spring Boot can help you get started easily, understanding the fundamental operating principles and development principles of Spring's technologies is crucial for effective use.

More importantly, Spring began as a book that outlined best practices and flexible development principles for Java enterprise and server development. In other words, Spring is a framework developed from the ground up with object-oriented design principles, patterns, and best practices in mind . Therefore, applying Spring's fundamental principles to application code that uses Spring is a natural approach, and this is precisely why learning Spring's fundamentals is crucial .

To become a good Spring developer
Develop the power of thought

The lecture is structured to help you understand the principles of Spring while going through the process of creating good code through refactoring .

Although this is a simple example, pay attention to the changes in the code covered in the lecture. You can see what questions are being asked about the current code, what issues are being raised, and what attempts are being made. You can also examine the effects of the refactored code and how Spring itself implemented it.

Furthermore, I believe that the Spring principles and patterns you learn through the process of refining and improving your own code will resonate deeply with you. I hope this lecture will provide insight into what Spring developers require and what kind of code they expect .

What you'll learn 📚

This course will explain key principles that will help you learn and understand Spring's vast technology more effectively, and how to apply those same principles within the applications you develop.


Objects and Dependencies

Spring is a framework that helps you create code that achieves its effects by faithfully applying object-oriented design and implementation, development principles, and design patterns using Java.

We will examine the core of dependency injection and the operating principles of the Spring container that supports it through the process of writing object-oriented code.

We'll explore the most basic and important features Spring provides and how to write application code to take advantage of them by improving sample code.


test

If you're not going to write tests, why use Spring? While Spring offers many features and benefits, its greatest benefits are its ability to easily and conveniently write tests for your code and its ability to easily configure tests for difficult-to-test targets.

We'll explore different approaches to writing tests for your application code, including testing code that uses APIs and testing time-sensitive tasks that are difficult to control.

We also cover useful learning tests as you learn the skills.


Template

The flexibility of object dependencies can also be experienced by leveraging the various templates provided by Spring. By leveraging design patterns and the Spring container together, we'll create highly reusable and scalable templates and callbacks, and we'll also examine templates applied to Spring.

You will learn how to simplify complex and repetitive code with fixed workflows using templates.


exception

We'll first explain the types of exception handling code, its challenges, and the basic principles to follow. We'll explore Spring's exception handling approach, using examples of code that utilizes database data access features. We'll then create JPA code and examine how Spring's DataAccessException works.

Create a systematic exception structure and describe appropriate exception handling methods.


Service abstraction

Let's first look at the types and features of the service.

Let's look at Spring's service abstraction, which allows application service code to be independent of specific technologies when using infrastructure services that provide technology, through an example of a transaction.

It also describes an effective way to use proxies to separate technical code that appears alongside business logic, while abstracting code that is not tied to a specific technology.


How to learn Spring

To understand the fundamental principles of Spring and apply them, you need to learn various ways to structure applications with the Spring Framework and be able to effectively utilize libraries provided by Spring.

Describes the basic strategy for learning Spring technologies and the types of technologies you should learn.


Pre-course notes

Practice environment

  • Operating System and Version (OS) : You will need a desktop operating system that supports Java technology, such as Windows, Mac, or Linux.

  • Tools to use: You will need to install JDK 17 or JDK 21 and an IDE, which is a development environment that allows you to develop and run Java projects.

    • The course uses IntelliJ IDEA Ultimate version.

    • You can use IntelliJ IDEA Ultimate or Community edition for the example exercises.

    • You can use any Java IDE such as Eclipse or STS, but we strongly recommend using IntelliJ IDEA.

Learning materials

  • You can access example code on GitHub. Each lesson step is committed, so you can check out and explore any section you want.

  • You can download the 230-page slides used in the lecture as a PDF file.

  • We provide lecture notes in PDF format, containing reference material for each class. We plan to continuously update these lecture notes based on student questions and other feedback.

Player knowledge and precautions

  • You need sufficient knowledge of the Java language to understand code written in it. At the very least, familiarity with Java 5 annotations, anonymous classes, and Java 8 lambda expressions is essential. Additional syntax and Java class library usage in later Java versions will be briefly explained in the lecture. It would be helpful to familiarize yourself with syntax added in Java 17 or 21 .

  • If you're curious about the overall flow, you can watch the entire video without following the examples. Afterward, I recommend going back and following the examples step by step, improving or applying the code yourself.


  • If there are any parts that require further explanation, we plan to add related videos.

Expected Questions Q&A

Q. I have Toby's Spring 3 or 3.1 book. Should I read the book first and then watch the lectures? Or is it better to study in reverse? If I watch the lectures, do I have to skip the book?

If you haven't purchased or studied the book yet, I recommend watching the lectures first. The example code is written using methods and techniques commonly used today, making it easier to understand than books published long ago (2010-2021). Furthermore, the lectures focus on providing concise, essential information, so watching them first is highly recommended.

After thoroughly studying the lecture material, it's a good idea to look at Toby's Spring book. It contains much more detailed information and explanations. Even if you don't read Volume 2, which includes detailed technical explanations, Volume 1 still provides many helpful sections for rereading while remembering the lecture material. However, if you have other things to learn, you don't necessarily need to read the book. Still, it's worth purchasing it for reference. 😄

Introduction of knowledge sharers

History

  • After working in Korea and the US, I am currently working as a consultant and developer in Australia.

  • I have 31 years of experience in practical development and 21 years of experience in Spring Framework development.

  • We have developed various systems and services in the manufacturing, logistics, finance, mobile communications, commerce, education, and service domains.

  • Author of Toby's Spring 3.0 and 3.1 books.

  • I founded the Korean Spring User Group (KSUG) and have been active in the developer community for a long time.


Recommended for
these people

Who is this course right for?

  • For those who want to better understand and utilize Spring

  • People who are using Spring in practice

  • Anyone who wants to learn flexible and scalable development methods

Need to know before starting?

  • Java language

  • Understanding Web API and DB Programming

Hello
This is

13,749

Learners

772

Reviews

347

Answers

5.0

Rating

7

Courses

호주에 살고 있는 소프트웨어 개발자입니다. 30년간 다양한 분야의 시스템과 서비스를 개발해본 경험이 있습니다. 

스프링 프레임워크와 관련 기술을 좋아하고 JVM 기반 언어를 주로 사용합니다.

한국스프링사용자모임(KSUG)을 설립하고 활동했고, 토비의 스프링이라는 책을 쓰기도 했습니다.

개발과 관련된 다양한 주제에 관해 이야기하는 것을 좋아합니다. 

 

 

Curriculum

All

58 lectures ∙ (12hr 27min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

172 reviews

5.0

172 reviews

  • parksangdonews8226님의 프로필 이미지
    parksangdonews8226

    Reviews 17

    Average Rating 4.8

    5

    100% enrolled

    It is plain. There is absolutely no online lecture tone full of modifiers and empty words to extend the lecture time. It is plain and thick, compressed, filled, and organized through several rehearsals. It is clearly different in intensity from other lectures that jump around to see quickly. I think most students will feel the most when they watch the lecture that there are no gaps in the lecture flow. The explanation of Spring did not start until the end. However, after listening to it all, I learned the core of how Spring works through the beginner's guide to the development ecosystem. The target audience includes everyone from beginners to intermediate and above. There are cries of "Beginner!!" and exclamations of "This kind of content??". Starting with a very simple example, it explains classes and objects, and shows the journey to find a more convenient and sophisticated method through relationships. At some point, the concerns that started in order to respond to change lead to design patterns. I shed tears over the past time when I opened the design pattern book and memorized many patterns in front of me. Rather, I can think about which patterns to use for changes. By the time we reach the entrance of the design pattern... Spring proves that it is a framework that easily supports DI by organizing the dependency inversion principle. Just like... students memorize K Ca Na Mg Al Zn Fe Ni Sn Pb H Cu Hg Ag Pt Au or memorize Taejeong Taese Mundan Se Yeseong Yeon Jung In Myeong Seong Gwang In Hyo Hyeon Sook Gyeong Gyeong Jeong Sun Heon Cheol Go Sun Eun (Joseon King's posthumous name), they memorize SOLID with a development book. Likewise, since I memorized it as if I was memorizing it for a test, there was no reason not to understand the content that I didn't understand as the code change process that directly creates the necessary function. Let's exclaim in admiration. As a developer, you need to conduct tests to quickly draw your own code and increase reliability, but this lecture shows you the reason and method of testing for 2 hours, and when you are tired of watching lectures that are full of content that can only be found in manuals under the title of TDD, this lecture shows you just what you need. Rather than talking about the meaning of test code and what is the real test code, the test part is concluded with the line that how to execute the test and how to verify what is more important. The necessity of code reuse cannot be overstated, but it shows which code should be reused and how to distinguish the parts that need to be changed, and the process of creating this as a template. At this time, you can naturally see the concept of callback with your eyes, and it shows how all of this process is completed in Spring. I was curious because it was not a lecture for beginners, but it explained exceptions, and it added a request to the request, explaining the precautions for exception handling, and at the end, it shows the concept and entity of abstraction, and various abstracted functions in Spring. And it concludes that these are actually the sum of the technologies that encompass the concepts learned so far. It was a lecture that showed the intention to put almost everything a developer needs to know into the title of the Spring lecture, approaching it through the beginner's course, and even if functions are added, it eventually covers objects and relationships, patterns and templates, and securing reliability based on tests, and even abstraction to escape dependencies. This is a great lecture that you should carry around with you and recommend to your loved ones as a gift. Let's do some Infraon work~~ There should be a function that allows you to send gifts if you know the email address of the other person's Infraon account!!!! I would like to thank Tobi, who refused to pay a high price for a lecture that only a few people can attend and created a book of martial arts secrets for all developers at Infraon for over 2 years, and I will end this review.. . Everyone!! Run here!!! # I could have been 1st... Everyone who left a review without taking the class 100% is cheating.. Bad!! # Even if you watch just one lecture clip from the domain section, the perfect build-up is enough to cover the entire cost of this lecture. You will regret not watching the other lecture clips. Hwa-ryong-jeom-jeong

    • tobyilee
      Instructor

      I am touched because this is my first 100% course review. Thank you for your positive review. However, you can write the course review freely whenever you want. :) I also thought it would be nice to have a lecture gifting function on Infraon, but it's a shame that it doesn't exist!!

    • Hello. This is Inflearn! Wish to share good courses? Now, with Inflearn's Course Gifting feature, you can gift them directly! May the warm feelings from reviews foster growth for friends, colleagues, and those around you. 🎁 Course Gifting Notice > https://www.inflearn.com/notices/1649873 Thank you.

  • choicore님의 프로필 이미지
    choicore

    Reviews 2

    Average Rating 5.0

    5

    59% enrolled

    It's the advance team. I have Toby's Spring book at my office and at home. It's been 14 years since the book came out, but it's still a great help in understanding the working principles of Spring and the abstractions it provides. I started watching it as soon as the lecture was released, but I was so obsessed that I kept clicking on the next lecture button and it was time to go to bed. There's a process of presenting problems in a situation where functional requirements are satisfied through example code, and transforming it into changeable code by applying design patterns and design principles. It was easy to understand and I was able to take the class with great immersion. I recommend that you look up the keywords that are thrown out here and there instead of just skipping them. Although Spring has been developing for over 20 years, I can feel the greatness of object-oriented design in that its underlying technology is still solid. In the book and in this lecture, Toby seems to be teaching us how to catch fish. I love Toby.

    • tobyilee
      Instructor

      I am also very impressed by the fact that the foundation that Spring has maintained without change and the principles reflected in it have remained unchanged for quite some time. Thank you for your first review.

    • zin
      Instructor

      How is the status of the advance team? ㅎㅎ I'm also curious about the review after completing the course!

    • Ah! I finished the course right after writing the course review, so I'm leaving a completion review. I felt that you prepared a lot throughout the course to make it smooth. It was fun to think about how you would solve it by presenting a problem that wasn't forced and solving it step by step from the bottom up. Wouldn't you do it like this? While thinking about this, I checked if Toby's thoughts and the direction I wanted to solve it overlapped(?). I usually think that I should be careful about codes that I don't know or parts that become objects of envy for designs. Thanks to Toby's knowledge transfer, I think I'm building up the basis for being able to receive information with discrimination in the sea of information. It was fun and informative. Thank you. I love you. P.S. I wanted to go to Infcon this year, but ㅜㅜ I failed Infcon. It's a regret of a lifetime.

  • hyunwookim11085590님의 프로필 이미지
    hyunwookim11085590

    Reviews 4

    Average Rating 5.0

    5

    31% enrolled

    First of all, the video lectures were so engaging that I, who has ADHD, watched 30% of them in one day. Even concepts that seem somewhat abstract to junior developers, such as SOLID principles and object-oriented, were explained in an easy-to-understand manner with examples, which reminded me of a mother bird. In this lecture, I felt that the maestros who definitely knew the truth had concise and simple sentences. It felt like eating a well-prepared Korean meal. I felt the same way when I listened to Object's Cho Young-ho's offline lecture, but Toby's lectures were so natural and logical that I felt like he had prepared a script. Of course, I don't think there is a royal road to learning development. However, with this level of compass, I don't think I'll get lost. Also, the way he explains complex concepts in an easy-to-understand manner was a great help in my studies. Through this lecture, I was able to approach difficult concepts with confidence. And as a side note, this is something I didn't expect because I only read books, but Toby's voice had the power to increase concentration and immerse me. I really liked his calm yet powerful voice.

    • tobyilee
      Instructor

      I'm curious to know what you liked. Thank you for your positive review. I look forward to seeing you working as a great developer who makes good use of Spring.

    • tobyilee
      Instructor

      Thank you for writing a detailed course review.

  • modelso9312님의 프로필 이미지
    modelso9312

    Reviews 1

    Average Rating 5.0

    5

    34% enrolled

    I haven't listened to the whole thing yet, but from what I've heard so far, I think he explains it better than the first-time college entrance exam instructor, so I'm leaving a review in a hurry. I think he would have been a first-time college entrance exam instructor if Spring had been a college entrance exam subject, because he explains things that were only explained in writing, so that anyone can understand the principles of operation. I think he's accurately DI (instilling understanding without trying to understand) in my head to that extent. After watching this lecture, I'm going to read Spring 3.1 carefully. I've been putting it off because I hate stiff writing, but I think I want to study properly this time. ㅎㅎ I'm always grateful. If I can edit my review, I'll read it all and add a review. I hope you stay healthy and create more great lectures.

    • tobyilee
      Instructor

      Thank you for saying that you understood it well. I hope the remaining content was helpful. Although the book is large, I tried to explain it as kindly as possible. There are some things I wanted to explain more but couldn't because of the limited time in the lecture, but I tried to include more explanations in the book, so if you have time, I recommend reading at least one volume.

    • 100% course review Even after I filled 100% of the lectures, I still thought it was a good idea to listen to the lectures. While listening to the lectures, I felt that it was not like eating a meal because they prepared the food and told me to eat it, but that I needed these ingredients, how to cook it, and if I combined them and ate it, I could make a delicious dish. I started out with development and only maintained a legacy project, but through the lectures at Inflearn, I got to know Toby and I think I was able to get one step closer to Spring. I would like to thank you again for making it so clear that I couldn't understand it just by reading articles floating around on the Internet. I hope you make many other lectures. After reading all of the book, I'm going to read the Spring reference once, and then listen to the lectures again to review them. If that happens, I'll try to leave my thoughts in a reply. Additionally, if I win Infcon and can meet you in person this time, it would be really great. !! Thank you for the great lecture.

  • daejoon님의 프로필 이미지
    daejoon

    Reviews 58

    Average Rating 4.9

    5

    100% enrolled

    Thank you for helping me become a better developer. I am still reading the hardcover edition of 'Toby's Spring 3.0'. When I first read it, I skipped over chapters 1 to 8 and only looked at the practical parts. However, as time passed, I ended up looking at the first part, chapters 1 to 8, again. The lecture focused on the first part, and explained the principles while excluding the difficult parts of Spring implementation as much as possible. Toby's unique build-up method of explaining the principles was still effective. Here are some things I didn't feel through the book, but I felt through the lecture: - The need to separate codes according to the reason and timing of change - A good habit of Opening and Closing at the same time when writing code that requires resource release - How to use IntelliSense with camel case in IntelliJ IDEA - How to use the TimeUnit class to conveniently use Thread.sleep - How to reduce dependencies by separating packages based on DIP (Dependency Inversion Principle) - How to control the environment using Clock.fixed - Double bracket technique that can be conveniently used when configuring Spring Configuration In fact, the things I learned listed above are additional parts, and while watching the lecture, I kept thinking about 'how to create a structure that is easy to maintain'. These parts were not completely resolved even after watching the lecture, but since it gave me some direction, I will think harder in the future. Thank you. Lastly, I felt that the condition was different for each lecture. Stay healthy. Once again, thank you for helping me become a better developer.

    • tobyilee
      Instructor

      You've been reading from the first book. I'm glad it was helpful. Thank you for your kind review.

$93.50

tobyilee's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!