이 프로젝트의 아이디어와 코드는 오픈소스 프로젝트 DerekYRC/mini-spring 및 code4craft/tiny-spring에서 가져왔습니다. 이를 연구하고 확장하고 보완한 후 내 경험을 요약하고 Spring을 배우기 위해 독자들과 공유하는 기사를 작성했습니다. 소스 코드를 함께 사용하세요. 오픈소스 프로젝트에 참여해주신 분들께 깊은 감사를 드립니다. 독자들도 함께 배우고 다양한 관점에서 학습 경험을 얻을 수 있습니다.
오픈 소스 프로젝트와 우수한 서적 ;
푸 형제는 일선 인터넷 Java 엔지니어이자 설계자로서 거래 및 마케팅 프로젝트를 개발하고, 운영 및 이벤트 프로젝트를 구현하고, 미들웨어를 설계하고, 체계적으로 시스템을 재구성하고, 기술 특허를 작성했습니다. 그는 비즈니스 시스템 개발에 참여하고 있을 뿐만 아니라 일부 바이트코드 계측 클래스의 설계 및 구현도 자주 수행합니다. 그는 아키텍처 설계 및 구현에 풍부한 경험을 갖고 있습니다. 그는 Java 언어에 열정적이지만 리피터, I/O 보드, C# 및 PHP에 대한 연구도 좋아합니다. 그는 적극적인 기술 고문입니다. ✏️ Wormhole · Technology Stack, 블로거, "Relearning Java Design Patterns" 책의 저자
WeChat 추가: fustack | 집중하다 |
Knowledge Planet : 코더들이 스스로를 가두게 될까요?
(学习套路&源码使用)
issue
제출하여 동료들과 소통하며 함께 발전해 나가세요. 이 웨어하우스는 Spring 프레임워크의 단순화된 버전을 손으로 직접 작성함으로써 Spring의 핵심 원리를 이해할 수 있도록 하기 위한 것입니다. 바로가기 -> 자세한 소개
필기 프로세스 중에 Spring 소스 코드가 단순화되고 전체 프레임워크의 핵심 로직이 추출되며 코드 구현 프로세스가 단순화되고 IOC, AOP, Bean 수명 주기와 같은 핵심 기능이 유지됩니다. 컨텍스트, 범위, 리소스 처리 및 기타 콘텐츠 구현.
小傅哥
, 제가 Spring 소스 코드를 읽기 시작한 이유는 주로 "인터뷰 매뉴얼"을 작성할 때 관련된 Spring 소스 코드가 많은 텍스트 설명, 긴 프로세스 도면 및 많은 콘텐츠 준비로 작성되었기 때문입니다. 하지만 이 부분을 처음 접하는 분들이 직접 배우기는 아직 많이 어렵기 때문에 이제 저와 더 많은 파트너들에게 학습의抓手
주기 위해 행복한 행성이 무엇인지 함께 공부해 보도록 하겠습니다!
이번 칼럼은 학습 과정에서 글의 각 장에서 해결해야 할 목표와 아이디어를 조합 하고 이를 코딩 실무 과정에 접목해야 하는 내용입니다. 코딩을 배우면서 콘텐츠의 이 부분이 왜 이런 방식으로 구현되었는지, 어떤 디자인 패턴을 사용하는지, 어떤 수단을 사용하여 어떤 책임 분리를 달성하는지 이해하는 것이 가장 좋습니다. 이러한 학습을 통해서만 Spring 소스 코드의 구현 프로세스를 더 잘 이해하고 마스터할 수 있으며 향후 심층 연구 및 실제 적용을 위한 견고한 기반을 마련하는 데 도움이 될 수 있습니다.
또한 본 칼럼의 학습 내용은 디자인 패턴과 결합되어 있으며, 하단 부분은 SpringBoot 미들웨어 설계 및 개발에 해당하므로, 학습 과정에서 이해하지 못하는 디자인 패턴을 접한 경우 해당 자료를 읽어볼 수 있다. Spring을 배우면서 미들웨어의 내용을 실습해 볼 수 있습니다.
소스 코드 : 이 칼럼에 포함된 소스 코드는 모두 현재 프로젝트에 통합되었으며 해당 장의 해당 사례 소스 코드와 하나씩 일치할 수 있습니다. 전체 프로젝트를 다운로드 후 바로 실행할 수도 있고, 각 장에 해당하는 소스코드 프로젝트를 별도로 열어서 실행할 수도 있습니다.
학습 과정에서 실행 불가능, 최적화 제안, 텍스트 오류 등의 문제가 발생하는 경우 문제를 제출하거나 작성자에게 문의할 수 있습니다.小傅哥
의 WeChat, fustack
칼럼의 내용 작성에서 각 장에서는 명확한 디자인 도면과 해당 클래스 다이어그램을 제공하므로 학습 과정에서 코드가 어떻게 작성되는지에 관심을 가질 뿐만 아니라 더 중요한 것은 이러한 디자인의 내용이 어떻게 파생되는지 이해해야 합니다. 이 과정에서 아래와 같이 Bean Life Cycle의 모든 핵심 내용이 지속적으로 구현됩니다.
스프링빈 라이프사이클 |
---|
难度【★☆☆☆☆】第01 章:开篇介绍,我要带你撸Spring 啦!
难度【★☆☆☆☆】第02 章:小试牛刀,实现一个简单的Bean容器
难度【★☆☆☆☆】第03 章:初显身手,运用设计模式,实现Bean 的定义、注册、获取
难度【★★☆☆☆】第04 章:崭露头角,基于Cglib实现含构造函数的类实例化策略
难度【★★☆☆☆】第05 章:一鸣惊人,为Bean对象注入属性和依赖Bean的功能实现
难度【★★☆☆☆】第06 章:气吞山河,设计与实现资源加载器,从Spring.xml解析和注册Bean对象
难度【★★★★☆】第07 章:所向披靡,实现应用上下文,自动识别、资源加载、扩展机制
难度【★★★☆☆】第08 章:龙行有风,向虚拟机注册钩子,实现Bean对象的初始化和销毁方法
难度【★★★☆☆】第09 章:虎行有雨,定义标记类型Aware接口,实现感知容器对象
难度【★★★☆☆】第10 章:横刀跃马,关于Bean对象作用域以及FactoryBean的实现和使用
难度【★★★★☆】第11 章:更上层楼,基于观察者实现,容器事件和事件监听器
难度【★★★★☆】第12 章:炉火纯青,基于JDK和Cglib动态代理,实现AOP核心功能
难度【★★★★★】第13 章:行云流水,把AOP动态代理,融入到Bean的生命周期
难度【★★★☆☆】第14 章:笑傲江湖,通过注解配置和包自动扫描的方式完成Bean对象的注册
难度【★★★☆☆】第15 章:万人之敌,通过注解给属性注入配置和Bean对象
이 책의 저자
小傅哥
50일 동안 거래, 마케팅, 반짝세일, 미들웨어, 소스코드 등 인터넷의 실제 비즈니스 전개 과정에서 22개의 실제 비즈니스 시나리오를 추출해 18만 단어 분량의 글을 썼다. , 271페이지 분량의 실용적인 Java 프로그래밍 자료. 책에 이해하기 어려운 내용이 포함되어 있는 경우, 집필 과정에서 저자가 필요한 설명과 엄격한 교정이 부족했기 때문일 것입니다. 의견이나 질문을 제출해 주셔서 감사합니다. 함께 발전하고 성장하세요.
바퀴를 만들고 미들웨어를 작성하는 방법을 단계별로 가르쳐 줄 전체 네트워크에서 이번이 유일한 시간입니다. 이런 종류의 기술은 P7에 가장 가깝고, 건축가에 가장 가깝고, 높은 급여에 가장 가깝기 때문입니다! 이 책자에는 테스트 프로젝트를 포함한 총 30개의 코드 라이브러리를 포함하여 16개의 미들웨어 구현이 포함되어 있습니다. 각 장은 독자가 책자에 있는 기술 내용을 빠르고 효과적으로 배울 수 있도록 미들웨어의 설계 및 구현에 해당합니다. 책자에는 각 장의 시작 지침, 수요 배경, 솔루션 설계, 기술 구현, 테스트 검증 및 결론이 포함되어 있습니다.
이 책은 총 5장 29절, 417페이지, 115,000단어로 구성되어 있으며, 완성하는 데 4개월이 걸렸습니다. 자료구조, 알고리즘 로직, 동시 프로그래밍, JVM, 이력서, 주요 인터넷 기업 인터뷰 등을 다룬다. 하지만 이 책은 단순한 면접 질문도 아니고 팔다리 에세이도 아니다. 대신 프로그래머와 관련된 간단한 수학적 지식 포인트부터 시작해 자바의 핵심 기술을 심도 깊게 설명한다. 그리고 각 챕터에는 실습으로 검증된 소스코드가 탑재되어 있어 비교하고 함께 플레이해 보시면 더 좋은 느낌을 받으실 수 있습니다!
책을 출판한다는 것이 좀 부풀려졌다고 하기엔 민망한 일이다. 결국 이것은 주제 선정, 원고 편찬, 편집, 심사, 가공, 출판 등 출판사의 과정이 아니다. 하지만 이 책은 총 107페이지, 117,000단어, 3개의 바이트코드 프레임워크(ASM, Javassist, Byte-buddy) 및 JavaAgent의 사용을 다루는 20개의 장으로 구성되어 있으며 완전한 케이스 소스 코드 세트가 함께 제공됩니다!
문제 피드백 :
그룹에 가입하여 소통하세요
이 그룹의 목적은 모든 사람에게 기술 학습 및 교환을 위한 좋은 플랫폼을 제공하는 것이므로 광고는 없습니다! 회원이 100명에 도달한 후에는 WeChat 그룹에 가입할 수 없으므로 먼저 아래 QR 코드를 스캔하여 WeChat(fustack)에 작성자 "Brother Xiao Fu"를 추가하세요. 참고: Spring学习加群
.
공개 계정(버그스택 웜홀 스택)
프로그래밍을 배우는 가장 쉬운 방법으로 침전하고, 공유하고, 성장하고, 독창적인 특수 사례에 집중하고, 지식을 공유하여 자신과 다른 사람들이 무언가를 얻을 수 있도록 하세요. 지금까지 완료된 주제는 다음과 같습니다.
데이터 수집 과정에서 저는 손으로 직접 작성한 두 가지 우수한 Spring 프레임워크 소스 코드인tiny-spring과 mini-spring을 발견했습니다. 이 두 가지 단순화된 Spring 프레임워크 버전은 매우 이해하기 쉽고 배우기 쉬우며, 사용하기 쉬운 소스 코드 튜토리얼. 이미 특정 기초를 갖추고 있다면 소스 코드를 직접 읽어 학습할 수 있습니다. 주소: