강의

멘토링

로드맵

BEST
Programming

/

Back-end

Spring Core Principles - Advanced

You will learn the core principles and advanced technologies of Spring in depth and be able to use Spring confidently.

(5.0) 764 reviews

19,746 learners

  • yh
네카라쿠배
시니어의 비법
Spring
Design Pattern

Reviews from Early Learners

What you will learn!

  • Core Design Patterns

  • Spring Advanced Features

  • Spring AOP

Core design patterns, thread locality, Spring AOP
Understanding Spring's Three Core Advanced Concepts

📢 Please check before taking the class!

  • This lecture is the eighth in the "Complete Java Spring Mastery" series. First, check out the Spring Mastery Roadmap from Younghan Kim, the youngest technical director at Woowa Brothers. (Go to)

Spring Core Principles - Fundamentals

  • Object-oriented design and Spring
    • SOLID - SRP, OCP, DIP
  • Spring Container and Spring Bean
    • Spring Container - IoC, DI
    • Dependency Injection
    • Empty creation cycle and scope

Spring Core Principles - Advanced Current Lecture

  • Spring Core Design Patterns
    • Template method pattern, strategy pattern, template callback pattern, proxy pattern, decorator pattern
  • Thread local
    • Concurrency issues, multithreading, thread locality
  • Spring AOP
    • Concepts, operating principles, practical examples, and precautions

Kim Young-han's Advanced Spring Core Principles
Core design patterns, thread locality, Spring AOP

The most commonly used technique in practice
Spring Framework

To become a skilled developer, you need to have a deep understanding of the tools you frequently use in your work.
Spring is the most widely used backend technology in practice.
Therefore, it is important for backend developers to have a deep understanding of Spring.

Spring Core Principles
From basic to advanced

We previously learned the basics of Spring and object-oriented development in Spring Core Principles - Fundamentals .
To deeply understand Spring and become a competent developer in the field, you need to understand three key advanced concepts, building on what you learned in the basics. In this "Spring Core Principles - Advanced" chapter, you'll learn these advanced concepts.

1. Spring Core Design Patterns
2. Thread locals to handle concurrency issues
3. Spring AOP


Spring Core Principles
Advanced

1. Spring Core Design Patterns

Spring's internal technologies are built around several core design patterns. Therefore, to gain a deeper understanding of Spring, you must first understand the core design patterns it frequently employs.

Key design patterns taught in lectures

  • Template Method Pattern
  • Strategy Patterns
  • Template callback pattern
  • Proxy pattern
  • Decorator pattern

In this lecture, we'll explain these design patterns in a very easy-to-understand way, creating example code one by one. We'll also learn how to apply the design patterns we've learned to your own applications.

2. Thread local

Spring is primarily used for web application development. Web applications use multithreading to handle multiple requests simultaneously. Therefore, concurrency issues can arise due to competing threads.

Concurrency issues and thread locals covered in the lecture

  • web application
  • multithreading
  • concurrency issues

In this lecture, you will learn about concurrency issues that arise when using Spring, and also learn about the concept of thread locals, which can conveniently solve concurrency issues.
Thread locals are an essential concept to understand how Spring works well in a multithreaded environment without concurrency issues.

3. Spring AOP

Spring AOP is a technology so widely used in practice that it feels almost magical. While many developers use Spring AOP, few truly understand how it works.

Beyond simply knowing and using Spring AOP's features, you need to deeply understand the operating principles of Spring AOP to be able to fundamentally resolve problems when they occur.

Spring AOP content delivered in lecture

  • Concepts and Terminology
  • Proxy - JDK dynamic proxy, CGLIB
  • How it works
  • Practical examples
  • Practical Precautions

In this lecture, we will go beyond a simple summary of Spring AOP's functions and cover everything about Spring AOP, from its operating principles to practical examples and precautions that frequently arise in practice.

etc

Additionally, we will provide you with advanced techniques for developing Spring containers, such as bean postprocessors, and various practical tips for developing Spring applications.

  • Extension Points in Spring Containers - Bean Postprocessors
  • Various practical tips for developing Spring applications

This lecture
Before you start

As this is an advanced course, the topics covered in this course are not easy.
However, if you want to become a skilled backend developer, this is something you must study at least once .
If you follow this course through to the end without giving up, you will experience a tremendous increase in your skills as a developer and be able to use Spring with more confidence than anyone else.
As this is a difficult subject, I've thoroughly prepared this lecture. I'll help you master it and make it your own.


This lecture
I recommend this to these people

Spring deeper
I want to know…

Advanced concepts of Spring
Improve your skills by learning
Those who want to grow more

Spring AOP
I do use it though…

How Spring AOP works
The principle is accurate
Anyone who wants to understand

Spring to Code
I want to understand

Through design patterns
Spring's internal technology
Anyone who wants to understand

Web App with Spring
I'm thinking of making it
...

Through thread locals
Spring concurrency issues
Anyone who wants to understand


To be continued in the future
Spring Complete Conquest Series

We're preparing a series designed to help you master Spring completely. We'll focus on core Spring features used in real-world applications, boldly omitting obsolete or outdated features, and provide practical know-how.

Lecture order


Related to this lecture
Lecture Roadmap

Kim Young-han's Complete Spring Conquest Series
Spring Core Principles - Practical Applications This lecture includes:

Complete mastery of Spring Boot + JPA practices
Advanced Practical Training on the Latest Backend Technologies


Recommended for
these people

Who is this course right for?

  • Developers who want to understand Spring in depth

  • Developers who want to easily understand Spring through code

  • Developer job seeker

  • A developer who studied Spring but gave up because it was difficult

  • Developers who use Spring in practice but want to properly understand and use the core principles of Spring

Need to know before starting?

  • Java language

  • Spring Core Principles - Basics

Hello
This is

557,847

Learners

36,585

Reviews

8,965

Answers

5.0

Rating

25

Courses

진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.

 

저의 개발 인생 이야기

EO 인터뷰 영상

개발바닥 - 시골 청년 개발왕 되다

취업과 이직에 대한 고민 해결

 

Curriculum

All

125 lectures ∙ (16hr 44min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

764 reviews

5.0

764 reviews

  • pilhwankim님의 프로필 이미지
    pilhwankim

    Reviews 19

    Average Rating 5.0

    5

    100% enrolled

    This time it was really long. I was so happy that I could finally understand AOP, one of the three major technologies of Spring. It was like an impregnable technology to me, like pointers in the C language. I really liked how you explained it step by step this time. I don't think there is a lecture or book that teaches AOP this easily. If you want to learn about Spring in earnest, you should definitely read it. And as a thank you to Yeonghan, I'm going to write about my Spring developer challenge. ============== When you try something new, you really need a lot of energy at first. ...(omitted)... First of all, it's really important to make a study habit. And when it comes to studying development, you have to try everything and code. You can never make it yours by just reading books and listening to lectures. I recommend that you study consistently for 3-4 hours on weekdays and 8 hours on weekends. =============== October 2020. I have been a Python developer so far, and I acknowledged that my career was at its limit and wanted to change my career to the Spring backend, so I sent an email to Younghan asking for advice. At that time, I received the above response from Younghan. It was a bit shocking, and I felt that I needed a lot of determination. In terms of years of experience, I was already at the senior level, and since I only knew a little about Java, the challenge was really difficult. I failed the interview repeatedly. I remember that when I failed the interview with Woowa Brothers early last year, I didn't study well for almost a month and a half. As Younghan said, 3-4 hours was realistically difficult, but I tried to do at least half of that. In fact, the content of this lecture was not mentioned often during the interview, but thanks to the content of the lecture that Younghan covered, I was able to develop an eye for looking at backend technology more deeply, which was the most helpful. And the fact that I had to study at a much higher standard. (I think I tried to make the derived content from the lecture my own.) My efforts worked... I went to one of the Nekaraku Cups at the end of March this year. I still feel inadequate, but I am excited and a little worried because the long 1.5 year preparation period has ended and the opportunity has been given. When COVID is over and I get used to my new position, I will go and thank you in person. Thank you, Younghan.

    • yh
      Instructor

      I sincerely congratulate you, Pil-hwan. It is easy for anyone to have momentary passion, but I think it is not easy to make it a habit and systemize it like Pil-hwan and continue it sustainably. In particular, since the language you have developed so far is not Java and you have a lot of experience, I thought it would be more disadvantageous to get a job at a good company than an average junior developer. In that sense, I can see how much effort Pil-hwan has put in, and I think it is a great achievement that you have created yourself. Also, since you have a lot of experience, you must have been asked a lot about how to actually apply it in practice rather than the basics, so I think it is good that you have acquired it beyond simply learning the lecture content to cover these areas. Since most companies are currently short of developers, I think anyone can get a job at a good company if they study and acquire the corresponding skills, as I advised Pil-hwan. Lastly, I also had difficult days when it came to getting a job and changing jobs, and I think Pil-hwan's article will be a great help to those preparing for getting a job or changing jobs. I sincerely thank you.

  • find1086님의 프로필 이미지
    find1086

    Reviews 14

    Average Rating 4.6

    5

    100% enrolled

    Spring AOP Education Masterpiece. The best lecture I'm sorry to the instructor that the maximum number of stars I can give is only 5. Thank you so much for the great lecture. As a side note, if you practice following the instructor's code and then debug the internal implementation logic of SpringObjenesis, CGLIB, and JDK dynamic proxy (ProxyFactory, ObjenesisCglibAopProxy, etc.) separately, you will probably get much more out of it. Personally, I debugged the moment of initialization with ProxyFactory proxyFactory = ProxyFactory(Component without interface); and went through various procedures according to the rules until I saw with my own eyes that it uses objenesis when creating and returning a proxy object as the result value of getProxy(). If I hadn't watched the lecture, I would not have understood anything because I didn't know the outline of the workflow at all. Also, I felt that my understanding of Spring AOP greatly improved while separately looking into the process in which the AspectJAutoProxyRegistrar class related to EnableAspectJAutoProxy gets types annotated with @Aspect and uses BeanPostProcessor in the subsequent logic to register proxy objects as Spring beans instead of actual objects. I am deeply grateful that you showed me the big picture first so that I could understand the detailed operation of the actual logic.

    • yh
      Instructor

      Charlie T, thank you for listening so intently. Thanks to this review, I get the strength to prepare for the next lecture^^!

  • saintbeller96님의 프로필 이미지
    saintbeller96

    Reviews 2

    Average Rating 5.0

    5

    33% enrolled

    It seems like Younghan's lecture is not about opening a door, but about holding the doorknob and turning it. Thank you for always showing such great lectures.

    • yh
      Instructor

      JongSeong Kim, thank you for the great analogy^^!

  • 34242344님의 프로필 이미지
    34242344

    Reviews 41

    Average Rating 4.9

    5

    100% enrolled

    After reading Toby's Spring Chapter 6, I had a mental breakdown and put the book down for a while, but I'll have to finish this lecture and go back to reading it. (Review after completing the lecture) At first, I was overwhelmed by the size of the lecture, which was 125 lectures, but as I listened to it, I understood why the lecture size was so large. As you said at the end of the lecture, I'll try to get through more code and look at more references. Now, I'll have to go study other design patterns that I don't understand enough. I'll come back next time with a better look.^^

    • yh
      Instructor

      !? Thank you for your first class review^^ I will always support you!

  • omg님의 프로필 이미지
    omg

    Reviews 205

    Average Rating 5.0

    5

    100% enrolled

    This was the first time since Supporters that I contributed to the lecture (manual) even a little bit, so it was a more meaningful advanced lecture than the previous lectures. I hope you will continue to give good lectures :)

    • yh
      Instructor

      OMG, thank you so much for always studying hard and working hard as a supporter!

Limited time deal ends in 20:09:13

$66.00

29%

$93.50

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!