Die Ideen und der Code dieses Projekts stammen aus den Open-Source-Projekten DerekYRC/mini-spring und code4craft/tiny-spring. Nachdem ich sie gelernt, erweitert und ergänzt hatte, schrieb ich Artikel, um meine Erfahrungen zusammenzufassen und sie mit den Lesern zu teilen, um den Frühling kennenzulernen Quellcode zusammen. Vielen Dank an die Mitwirkenden des Open-Source-Projekts. Die Leser können auch gemeinsam lernen und Lernerfahrungen aus verschiedenen Perspektiven sammeln.
Open-Source-Projekte und hervorragende Bücher ;
Bruder Fu ist ein Internet-Java-Ingenieur und -Architekt an vorderster Front. Er hat Transaktions- und Marketingprojekte entwickelt, Betriebs- und Veranstaltungsprojekte implementiert, Middleware entworfen, Systemrekonstruktionen organisiert und technische Patente geschrieben. Er beschäftigt sich nicht nur mit der Entwicklung von Geschäftssystemen, sondern übernimmt häufig auch den Entwurf und die Implementierung einiger Bytecode-Instrumentierungsklassen. Er verfügt über umfangreiche Erfahrung im Entwurf und der Implementierung von Architektur. Während er sich leidenschaftlich für die Sprache Java interessiert, studiert er auch gerne Repeater, I/O-Boards, C# und PHP. Er ist ein aktiver technischer Peiniger. ✏️ Wormhole · Technology Stack, Blogger, Autor des Buches „Relearning Java Design Patterns“
WeChat hinzufügen: fustack | konzentrieren Sie sich auf |
Knowledge Planet : Werden sich Programmierer einsperren?
(学习套路&源码使用)
issue
, um mit Ihren Kommilitonen zu kommunizieren und gemeinsam Fortschritte zu machen Dieses Warehouse dient zum Erlernen des Spring-Quellcodes. Durch das handschriftliche Schreiben einer vereinfachten Version des Spring-Frameworks können Sie die Kernprinzipien von Spring verstehen. Gehe zu -> Ausführliche Einführung
Während des Handschriftprozesses wird der Spring-Quellcode vereinfacht, die Kernlogik im Gesamtframework extrahiert, der Code-Implementierungsprozess vereinfacht und Kernfunktionen beibehalten, wie zum Beispiel: IOC, AOP, Bean-Lebenszyklus, Kontext, Umfang, Ressourcenverarbeitung und andere Inhaltsimplementierungen.
小傅哥
, der Grund, warum ich angefangen habe, den Spring-Quellcode zu lesen, liegt hauptsächlich darin, dass beim Schreiben des „Interview-Handbuchs“ der beteiligte Spring-Quellcode mit vielen Textbeschreibungen, langen Prozesszeichnungen und viel Inhaltsvorbereitung geschrieben wurde. Aber für Neulinge ist es immer noch sehr schwierig, diesen Teil des Inhalts direkt zu lernen. Um mir und weiteren Partnern einen抓手
zum Lernen zu geben, lasst uns nun gemeinsam untersuchen, was ein glücklicher Planet ist!
In dieser Kolumne geht es um praktische Codierungsmaterialien. Während des Lernprozesses müssen Sie die in jedem Kapitel des Artikels zu lösenden Ziele kombinieren, Ideen entwerfen und sie in den praktischen Codierungsprozess einbringen. Beim Erlernen des Programmierens ist es auch am besten zu verstehen, warum dieser Teil des Inhalts auf diese Weise implementiert wird, welche Designmuster er verwendet und welche Methoden verwendet werden, um welche Art von Aufgabentrennung zu erreichen. Nur durch ein solches Lernen können Sie den Implementierungsprozess des Spring-Quellcodes besser verstehen und beherrschen und es kann Ihnen auch dabei helfen, eine solide Grundlage für zukünftige eingehende Studien und praktische Anwendungen zu legen.
Darüber hinaus wird das Lernen in dieser Spalte mit Designmustern kombiniert, und der untere Teil entspricht dem Design und der Entwicklung von SpringBoot-Middleware. Wenn Leser daher während des Lernprozesses auf Designmuster stoßen, die sie nicht verstehen, können sie die entsprechenden Materialien danach lesen Wenn Sie Spring lernen, können Sie mit dem Inhalt der Middleware üben.
Quellcode : Der in dieser Spalte enthaltene Quellcode wurde vollständig in das aktuelle Projekt integriert und kann einzeln mit dem entsprechenden Fallquellcode im Kapitel abgeglichen werden. Sie können das gesamte Projekt direkt ausführen, nachdem Sie es erhalten haben, oder Sie können das Quellcodeprojekt für jedes Kapitel separat öffnen und ausführen.
Wenn Sie während des Lernprozesses auf Probleme stoßen, einschließlich Ausführungsunfähigkeit, Optimierungsvorschläge, Textfehler usw., können Sie ein Problem einreichen oder sich an den Autor wenden: WeChat von小傅哥
, fustack
Beim Schreiben des Inhalts der Spalte stellt jedes Kapitel klare Entwurfszeichnungen und entsprechende Klassendiagramme bereit. Während des Lernprozesses müssen Sie sich also nicht nur darum kümmern, wie der Code geschrieben wird, sondern, was noch wichtiger ist, verstehen, wie der Inhalt dieser Entwürfe abgeleitet wird In diesem Prozess werden alle Kerninhalte des Bean-Lebenszyklus kontinuierlich realisiert, wie unten gezeigt:
Lebenszyklus von Frühlingsbohnen |
---|
难度【★☆☆☆☆】第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对象
Der Autor dieses Buches,
小傅哥
, hat 50 Tage damit verbracht, 22 reale Geschäftsszenarien aus der tatsächlichen Geschäftsentwicklung des Internets zu extrahieren, wie z. B. Transaktionen, Marketing, Flash-Verkäufe, Middleware, Quellcode usw., und ein praktisches Java geschrieben 180.000 Wörter und 271 Seiten Programmiermaterialien. Wenn das Buch schwer verständliche Inhalte enthält, muss es daran liegen, dass es dem Autor während des Schreibprozesses an der notwendigen Beschreibung und der strengen Kalibrierung mangelte. Vielen Dank für die Übermittlung Ihrer Meinungen oder Fragen. Gerne können Sie auch mit mir interagieren Fortschritte machen und gemeinsam wachsen.
Dies ist das einzige Mal im gesamten Netzwerk, dass ich Ihnen Schritt für Schritt beibringe, wie man Räder baut und Middleware schreibt, da diese Art von Technologie P7 am nächsten kommt, Architekten am nächsten kommt und hohen Gehältern am nächsten kommt! Die Broschüre enthält 16 Middleware-Implementierungen, darunter insgesamt 30 Codebibliotheken einschließlich Testprojekten. Um den Lesern das schnelle und effektive Erlernen der technischen Inhalte in der Broschüre zu erleichtern, wird auf die einzelnen Kapitel eingegangen. Die Broschüre enthält folgende Themen: Eröffnungsanleitung, Anforderungshintergrund, Lösungsdesign, technische Implementierung, Testüberprüfung und Schlussfolgerung am Ende des Artikels.
Das Buch besteht aus insgesamt 5 Kapiteln und 29 Abschnitten, 417 Seiten und 115.000 Wörtern und die Fertigstellung dauerte 4 Monate. Behandelt Datenstruktur, Algorithmuslogik, gleichzeitige Programmierung, JVM, Lebenslauf und Interviews mit großen Internetunternehmen usw. Aber dieses Buch ist weder nur eine Interviewfrage noch ein achtbeiniger Aufsatz. Stattdessen geht es von einem einfachen mathematischen Wissenspunkt aus, der sich auf Programmierer bezieht, und erklärt die Kerntechnologie von Java ausführlich. Und jedes Kapitel ist mit einem durch Übung verifizierten Quellcode ausgestattet, sodass Sie ihn vergleichen und gemeinsam spielen können, um ein besseres Gefühl zu bekommen!
Es ist peinlich zu sagen, dass die Veröffentlichung eines Buches etwas übertrieben ist. Schließlich ist dies nicht der Prozess eines Verlags, der Themenauswahl, Manuskripterstellung, Bearbeitung, Rezension, Bearbeitung und Veröffentlichung umfasst. Aber das Buch umfasst insgesamt 107 Seiten, 117.000 Wörter, 20 Kapitel, die die Verwendung von drei Bytecode-Frameworks (ASM, Javassist, Byte-Buddy) und JavaAgent abdecken, und enthält einen vollständigen Satz an Case-Quellcodes!
Problem-Feedback :
Treten Sie einer Gruppe bei, um zu kommunizieren
Der Zweck dieser Gruppe ist es, allen eine gute Plattform zum technischen Lernen und Austausch zu bieten, also keine Werbung! Da der WeChat-Gruppe nicht mehr beigetreten werden kann, nachdem sie 100 Mitglieder erreicht hat, scannen Sie bitte zuerst den QR-Code unten, um den Autor „Bruder Xiao Fu“ auf WeChat (fustack) hinzuzufügen. Hinweis: Spring学习加群
.
Öffentliches Konto (Bugstack Wurmlochstack)
Präsentieren, teilen und wachsen Sie, konzentrieren Sie sich auf originelle Spezialfälle, teilen Sie Wissen auf einfachste Weise, um Programmieren zu lernen, damit Sie und andere etwas gewinnen können. Zu den bisher abgeschlossenen Themen gehören: Netty4.
Während der Datenerfassung habe ich zwei sehr hervorragende handgeschriebene Spring-Framework-Quellcodes entdeckt: Tiny-Spring und Mini-Spring. Diese beiden vereinfachten Versionen des Spring-Frameworks haben eine sehr leicht verständliche und leicht zu erlernende Implementierung implementiert. und einfach zu verwendendes Quellcode-Tutorial. Wenn Sie bereits über bestimmte Grundlagen verfügen, können Sie den Quellcode direkt lesen, um zu lernen. Adresse: