강의

멘토링

커뮤니티

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) 795 reviews

19,934 learners

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

Reviews from Early Learners

What you will gain after the course

  • 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

567,902

Learners

38,234

Reviews

9,015

Answers

5.0

Rating

25

Courses

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

Curriculum

All

125 lectures ∙ (16hr 44min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

795 reviews

5.0

795 reviews

  • pilhwankim님의 프로필 이미지
    pilhwankim

    Reviews 19

    Average Rating 5.0

    5

    100% enrolled

    Lần này thực sự rất dài. Tôi rất vui vì cuối cùng tôi cũng có thể hiểu được AOP, một trong ba công nghệ chính của Spring. Đối với tôi, nó giống như một công nghệ không thể tiếp cận được (?), giống như con trỏ trong ngôn ngữ C. Tôi thực sự thích lời giải thích từng bước lần này. Tôi nghĩ có lẽ không có bài giảng hay cuốn sách nào dạy AOP dễ dàng như vậy. Nếu bạn muốn tìm hiểu thêm về mùa xuân, bạn phải kiểm tra nó. Và để cảm ơn Younghan, tôi muốn viết về thử thách dành cho nhà phát triển mùa xuân của mình. ================ Việc thử một điều gì đó mới mẻ lúc đầu sẽ tốn rất nhiều năng lượng. ...(từ đồng nghĩa)... Trước hết, việc tạo thói quen học tập thực sự quan trọng. Và khi nghiên cứu phát triển, bạn đặc biệt cần phải chạy và viết mã mọi thứ. Chỉ đọc sách và nghe giảng sẽ không bao giờ là của bạn. Chúng tôi khuyên bạn nên học liên tục trong 3-4 giờ vào các ngày trong tuần và 8 giờ vào cuối tuần. ================ Tháng 10 năm 2020. Làm lập trình viên Python cho đến nay, tôi thừa nhận rằng sự nghiệp của mình đã đến giới hạn và muốn chuyển hướng sang làm backend Spring nên đã gửi email đến Younghan để xin lời khuyên. Lúc đó tôi đã nhận được phản hồi trên từ Younghan. Đó là một cú sốc và tôi cảm thấy mình cần rất nhiều quyết tâm. Với kinh nghiệm nhiều năm của mình, tôi đã đạt trình độ cao cấp và chỉ có kiến ​​thức mơ hồ về Java nên thử thách không hề dễ dàng. Tôi liên tục thất bại trong cuộc phỏng vấn. Tôi nhớ rằng khi tôi trượt cuộc phỏng vấn với Woowa Brothers vào đầu năm ngoái, tôi đã học không tốt trong gần một tháng rưỡi. Như Younghan đã nói, 3-4 giờ thực sự khó khăn, nhưng tôi nghĩ tôi đã cố gắng thực hiện ít nhất một nửa thời gian đó. Thực ra nội dung bài giảng này không được nhắc đến thường xuyên trong buổi phỏng vấn, nhưng tôi nghĩ điều hữu ích nhất là tôi đã phát triển được góc nhìn sâu sắc hơn về công nghệ back-end nhờ nội dung bài giảng của Younghan. Và thực tế là chúng ta phải học ở một tiêu chuẩn cao hơn nhiều. (Tôi nghĩ tôi đã cố gắng biến những gì rút ra từ bài giảng thành của riêng mình.) Tôi tự hỏi liệu những nỗ lực của tôi có được đền đáp hay không… Tôi đã đến một trong những chiếc thuyền Nekaraku vào cuối tháng 3 năm nay. Tôi vẫn cảm thấy mình chưa đủ giỏi nhưng tôi rất hào hứng và có chút lo lắng vì cơ hội đã được trao sau hơn một năm rưỡi chuẩn bị. Khi virus Corona kết thúc và tôi đã quen với vị trí mới, tôi sẽ đến và nói lời cảm ơn trực tiếp. Cảm ơn cậu, Younghan.

    • yh
      Instructor

      Pilhwan, tôi chân thành chúc mừng bạn. Bất cứ ai cũng có thể dễ dàng có được niềm đam mê nhất thời, nhưng tôi không nghĩ việc biến nó thành thói quen, hệ thống hóa và tiếp tục bền vững như Pilhwan là điều không dễ. Đặc biệt, ngôn ngữ tôi phát triển cho đến nay không phải là Java và tôi có rất nhiều kinh nghiệm nên tôi nghĩ sẽ bất lợi hơn nếu xin được việc ở một công ty tốt so với một nhà phát triển cấp dưới điển hình. Về mặt đó, tôi có thể thấy Pilhwan đã nỗ lực đến mức nào và tôi nghĩ đó là một thành tích tuyệt vời mà anh ấy đã tự mình đạt được. Và vì bạn có nhiều kinh nghiệm nên có lẽ bạn đã hỏi rất nhiều câu hỏi về cách sử dụng nó trong thực tế thay vì chỉ những điều cơ bản. Tôi nghĩ bạn đã làm rất tốt khi vượt ra ngoài việc chỉ học nội dung bài giảng để đề cập đến những lĩnh vực này. Hiện tại, hầu hết các công ty đều thiếu nhà phát triển, vì vậy tôi nghĩ bất kỳ ai cũng có thể xin được việc làm ở một công ty tốt nếu họ học tập và có được những kỹ năng phù hợp, giống như lời khuyên tôi đã dành cho Pilhwan. Cuối cùng, tôi cũng đã trải qua những ngày khó khăn với việc tìm việc và chuyển việc, và tôi nghĩ bài viết của Pilhwan sẽ giúp ích rất nhiều cho những ai đang chuẩn bị đi làm hoặc chuyển việc. Cảm ơn rất nhiều.

  • find1086님의 프로필 이미지
    find1086

    Reviews 14

    Average Rating 4.6

    5

    100% enrolled

    Kiệt tác đào tạo AOP mùa xuân. bài giảng hay nhất Số sao tối đa tôi có thể cho chỉ là 5. Tôi chỉ cảm thấy tiếc cho người hướng dẫn.. Cảm ơn bạn rất nhiều vì bài giảng tuyệt vời. Xin lưu ý thêm, tôi nghĩ bạn sẽ có thể thu được nhiều lợi ích hơn nếu thực hành theo mã của người hướng dẫn và sau đó gỡ lỗi logic triển khai nội bộ của SpringObjenesis, CGLIB và proxy động JDK (ProxyFactory, ObjenesisCglibAopProxy, v.v.) một cách riêng biệt. Cá nhân tôi đã gỡ lỗi thời điểm khởi tạo với ProxyFactory proxyFactory = ProxyFactory (thành phần không có giao diện); và trải qua Enhancer của CGLIB, trải qua nhiều quy trình khác nhau theo quy tắc, và cuối cùng đã tạo và trả về một đối tượng proxy với kết quả là getProxy(). Tôi đã tận mắt nhìn thấy nó được sử dụng và nếu không xem bài giảng của người hướng dẫn, tôi sẽ không hiểu gì vì tôi không nắm được sơ lược quy trình làm việc. Nó sẽ.. Ngoài ra, lớp AspectJAutoProxyRegistrar liên quan đến EnableAspectJAutoProxy nhập các loại chú thích @Aspect và trong logic tiếp theo, quy trình đăng ký đối tượng proxy dưới dạng đậu mùa xuân thay vì đối tượng thực bằng BeanPostProcessor đã được khám phá riêng biệt, cải thiện đáng kể sự hiểu biết của tôi về Spring AOP. Nó. Cảm ơn bạn rất nhiều vì đã cho tôi xem bức tranh toàn cảnh đầu tiên để tôi có thể hiểu được hoạt động chi tiết của logic thực tế.

    • yh
      Instructor

      Charlie T, cảm ơn bạn đã lắng nghe cẩn thận. Nhờ những bài ôn lại bài giảng này mà mình có thêm sức mạnh để chuẩn bị cho bài giảng tiếp theo ^^!

  • saintbeller96님의 프로필 이미지
    saintbeller96

    Reviews 2

    Average Rating 5.0

    5

    33% enrolled

    Có vẻ như bài giảng của Younghan không phải là bài giảng về cách mở cửa mà là bài giảng về cách cầm nắm cửa và xoay nó. Cảm ơn bạn đã luôn đưa ra những bài giảng hay ㅠㅠ

    • yh
      Instructor

      JongSeong Kim, cảm ơn bạn vì sự so sánh tuyệt vời ^^!

  • 34242344님의 프로필 이미지
    34242344

    Reviews 41

    Average Rating 4.9

    5

    100% enrolled

    Tôi đã suy sụp tinh thần sau khi xem Chương 6 của Toby's Spring và đóng cuốn sách lại một lúc, nhưng bài giảng này sâu sắc đến mức tôi phải mở lại. Đánh giá khóa học) Lúc đầu, tôi bị choáng ngợp bởi quy mô của khóa học 125 bài giảng, nhưng sau khi nghe xong, tôi hiểu tại sao quy mô của khóa học lại trở nên lớn như vậy. Như bạn đã nói ở cuối bài giảng, tôi sẽ làm việc chăm chỉ bằng cách truy cập nhiều mã hơn và xem nhiều tài liệu tham khảo hơn. Bây giờ tôi phải đi nghiên cứu các mẫu thiết kế khác mà tôi chưa hiểu rõ. Tôi sẽ đến để nghe tốt hơn trong bài giảng tiếp theo. ^^

    • yh
      Instructor

      !? Cảm ơn bạn đã đánh giá buổi học đầu tiên ^^ Tôi luôn ủng hộ bạn!

  • omg님의 프로필 이미지
    omg

    Reviews 205

    Average Rating 5.0

    5

    100% enrolled

    Lần đầu tiên kể từ khi trở thành người hỗ trợ, tôi đóng góp một chút cho bài giảng (sách tay) nên là bài giảng nâng cao, ý nghĩa hơn bài giảng trước. Chúc bạn tiếp tục có những bài giảng hay :)

    • yh
      Instructor

      OMG, cảm ơn bạn rất nhiều vì đã luôn học tập chăm chỉ và làm việc chăm chỉ với tư cách là người hỗ trợ!

$93.50

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!