Toby's Spring 6 - Understanding and Principles

By examining the process of how the Spring Framework was created, we will identify principles that help in better understanding and utilizing Spring. Through this, we will also explore how the application code written by developers should be structured.

(5.0) 240 reviews

3,480 learners

Level Basic

Course period Unlimited

Java
Java
Spring
Spring
Java
Java
Spring
Spring

Reviews from Early Learners

Reviews from Early Learners

5.0

5.0

jhprk

100% enrolled

This is an essential course if you're encountering Spring for the first time, or if you were thrown into practical work without knowing it well. Even if you don't use Spring, I would recommend this course to developers who want to create applications that follow object-oriented principles very well. Thank you for the great course!!

5.0

Sang Do Park

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

5.0

최재형

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.

What you will gain after the course

  • Core Principles of Spring Technology

  • Object-Oriented Design Principles and Design Patterns

  • Methods for verifying code using tests

  • Continuous improvement of code through refactoring

  • Dependency Injection, Templates, Exceptions, Service Abstraction

The return of the Spring Guru!
Toby's Spring 6 is back after 14 years

The long-awaited <Toby's Spring 3>, which was published a long time ago and loved by many developers, has returned after 14 years!

This course retains the core content covered in the book <Toby's Spring 3.1> while restructuring it to fit Spring 6 and the latest Java versions. In particular, you can experience the latest Spring Framework in depth through example code that incorporates modern approaches and technologies widely used today.


Are you by any chance having these concerns? 🤔

✅ Since Spring is so vast and provides such a wide variety of technologies, I end up investing a lot of time into learning how to use the necessary features every time.

✅ While it's great that Spring provides various options as a flexible framework, it's burdensome to consider so many factors just to find the optimal method.

✅ I want to develop the ability to easily verify whether Spring Framework functions are working correctly, or to respond more quickly and accurately to unexpected problems.


The reason why you should learn the operating principles
rather than just how to use it

Spring is a flexible and highly scalable framework. It is important to select the necessary technologies and Spring features based on the characteristics of the application being developed, and sometimes it is necessary to extend the features provided by Spring to fit the application. While it is easy to start development with the help of Spring Boot, to use Spring more effectively, it is very advantageous to basically understand the operating mechanisms and development principles of the technologies provided by Spring.

More importantly, Spring began as a book explaining best practices and flexible development principles for Java enterprise and server development. In other words, Spring is a framework born from the consideration of object-oriented design principles, patterns, and excellent development practices. For this reason, applying Spring's fundamental principles to the application code that uses it is a natural approach, and this is exactly why you must learn Spring starting from its fundamental principles.

Cultivating the
power of thinking to become a good Spring developer

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

Although it is a simple example, please pay attention to the changes in the code covered in the lecture. Observe what questions are asked about the current code, what problems are raised, and what attempts are made. You will be able to see the effects of the refactored code and how Spring itself applied those principles.

Furthermore, I believe that the Spring principles and patterns you learn through the process of refining and improving code yourself will resonate with you more deeply. I hope this lecture provides you with the time to gain insights into what is required of a Spring developer and what kind of code is expected.

Learning Content 📚

The lecture explains key principles that will help you learn and understand Spring's vast technologies more effectively, and it also covers how to apply those same principles within the applications we develop.


Objects and Dependencies

Spring is a framework that helps create code that can reap the benefits of faithfully applying object-oriented design and implementation, development principles, and design patterns using Java.

We will explore the core concept of Dependency Injection and the operating principles of the Spring Container that supports it, through the process of writing object-oriented code.

We will explore the most fundamental and important features provided by Spring, and how to write application code to utilize them effectively, by improving example code.


Testing

If you aren't going to create tests, why use Spring at all? While Spring provides many features and benefits, one of the greatest advantages it offers is the ability to write tests for your code easily and conveniently, and to create configurations that allow you to effortlessly test objects that are otherwise difficult to test.

We will explore various ways to write tests for application code and look into how to test code that uses APIs or deals with difficult-to-control elements like time.

It also covers learning tests, which are useful when mastering new technologies.


Template

The flexibility of object dependency relationships can also be experienced by utilizing various templates provided by Spring. By combining design patterns with the Spring container, we will create templates and callbacks with high reusability and extensibility, and also examine the templates applied within Spring itself.

You can learn how to simplify complex and repetitive code with a fixed workflow by using templates.


Exception

First, we explain the types of exception-handling code, their problems, and the basic principles that must be followed. We will look into Spring's exception-handling methods through examples occurring in code that uses DB data access functions, and then create JPA code to see how Spring's DataAccessException works.

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


Service Abstraction

First, let's look at the types and characteristics of the services.

Using the example of transactions, we will examine Spring's service abstraction, which ensures that application service code does not depend on specific technologies when using infrastructure services that provide those technologies.

It also explains effective ways to use proxies to separate technical code that appears alongside business logic, even though the abstracted code is not tied to a specific technology.


How to Learn Spring

To understand the basic principles of Spring and apply them, you must learn various ways to configure applications alongside the Spring Framework and be able to effectively utilize the libraries provided by Spring.

Explains the basic strategy for learning Spring technology and the types of technologies you need to learn.


Notes before taking the course

Practice Environment

  • Operating System and Version (OS): A desktop operating system capable of using Java technologies, such as Windows, Mac, or Linux, is required.

  • Tools used: You need to install JDK 17 or JDK 21 and have an IDE, which is a development environment for developing and running Java projects.

    • In this course, we will be using the IntelliJ IDEA Ultimate version.

    • For the example exercises, you can use either the IntelliJ IDEA Ultimate version or the Community version.

    • You can use Java IDEs such as Eclipse or STS, but using IntelliJ IDEA is highly recommended.

Learning Materials

  • You can access the example code on GitHub. Each step of the lesson is committed, so you can check out and examine the specific parts you want.

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

  • Lecture notes containing reference materials for the content explained in each lesson are provided in PDF format. We plan to continuously update these reference lecture notes based on feedback and questions from students.

Prerequisites and Important Notes

  • You need enough language knowledge to understand code written in Java. Please be familiar with at least the use of Java 5 annotations, anonymous classes, and Java 8 lambda expressions. Syntax added in later Java versions or the use of Java class libraries will be briefly explained in the lecture. It will be helpful if you learn the syntax added up to Java version 17 or 21.

  • If you are curious about the overall flow, you may watch all the videos first without following along with the examples. Afterward, I recommend going through the examples step-by-step and trying to improve or apply the code on your own.


  • If there are parts that require additional explanation, I plan to add related videos.

Anticipated Q&A

Q. I have the Toby's Spring 3 or 3.1 book. Should I read the book first and then watch the lectures? Or is it better to learn in the opposite order? If I watch the lectures, do I still need to read 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 technologies commonly used today, making it easier to understand than reading a book published a long time ago (2010-2011). Additionally, since the lectures focus on explaining essential content concisely, it is better to watch them first.

It is also a good idea to read the "Toby's Spring" book after you have thoroughly studied the course content. The book contains more detailed information and explanations. Even if you don't read Volume 2, which contains in-depth technical details, there are many parts in Volume 1 that will be helpful to re-read while recalling the course material. However, if you have many other things to learn, you don't necessarily have to read the book. Still, it wouldn't be a bad idea to purchase it for reference. 😄

About the Instructor

Career History

  • After working in Korea and the United States, 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.

  • I have developed various systems and services across manufacturing, logistics, finance, telecommunications, commerce, education, and service domains.

  • I authored the books Toby's Spring 3.0 and 3.1.

  • I founded the Korea 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?

  • Those who want to better understand and utilize Spring

  • Those who are using Spring in practice

  • Those who want to master flexible and highly scalable development methods

Need to know before starting?

  • Java language

  • Understanding Web APIs and DB Programming

Hello
This is tobyilee

15,896

Learners

1,044

Reviews

421

Answers

5.0

Rating

8

Courses

I am a software developer living in Australia. I have 30 years of experience developing systems and services across various fields.

I love the Spring Framework and its related technologies, and I primarily use JVM-based languages.

I founded and have been active in the Korea Spring User Group (KSUG), and I also wrote the book Toby's Spring.

I enjoy talking about various topics related to development.

I founded and was active in the Korea Spring User Group (KSUG), and I also wrote the book *Toby's Spring*. I enjoy talking about various topics related to development.

I founded and was active in the Korea Spring User Group (KSUG), and I also wrote the book *Toby's Spring*. I enjoy talking about various topics related to development.

More

Curriculum

All

58 lectures ∙ (12hr 27min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

240 reviews

5.0

240 reviews

  • 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.

  • daejoon님의 프로필 이미지
    daejoon

    Reviews 59

    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.

  • 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.

  • 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.

  • parksangdonews님의 프로필 이미지
    parksangdonews

    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.

tobyilee's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

$93.50