このプロジェクトのアイデアとコードは、オープン ソース プロジェクト DerekYRC/mini-spring および code4craft/tiny-spring から来ており、それらを研究、拡張、補足した後、私の経験を要約し、Spring を学ぶために読者と共有する記事を書きました。ソースコードも一緒に。オープンソース プロジェクトの貢献者に感謝します。読者も一緒に学び、さまざまな視点から学習経験を積むことができます。
オープンソース プロジェクトと優れた書籍。
Brother Fu は、最前線のインターネット Java エンジニアおよびアーキテクトであり、トランザクションおよびマーケティング プロジェクトの開発、運用およびイベント プロジェクトの実装、ミドルウェアの設計、システムの再構築の組織化、および技術特許の作成を行ってきました。彼はビジネス システムの開発に従事しているだけでなく、いくつかのバイトコード インストルメンテーション クラスの設計と実装も行っており、アーキテクチャの設計と実装において豊富な経験を持っています。彼は Java 言語に情熱を注いでいますが、リピーター、I/O ボード、C#、および PHP を勉強することも好きで、積極的な技術指導者でもあります。 ✏️ ワームホール・テクノロジースタック、ブロガー、書籍「Relearning Java Design Patterns」の著者
WeChatを追加: fustack | 焦点を当てる |
Knowledge Planet : プログラマーは自分自身を閉じ込めてしまうのでしょうか?
(学习套路&源码使用)
issue
提出して同僚とコミュニケーションを取り、一緒に進歩させます。 このウェアハウスは、Spring フレームワークの簡易版を手書きすることで Spring のソース コードを学習することを目的としており、Spring の核となる原理を理解することができます。進む -> 詳細な紹介
手書きプロセス中に、Spring ソース コードが簡素化され、フレームワーク全体のコア ロジックが抽出され、コード実装プロセスが簡略化され、IOC、AOP、Bean ライフ サイクルなどのコア機能が保持されます。コンテキスト、スコープ、リソース処理、その他のコンテンツの実装。
小傅哥
、私が Spring のソース コードを読み始めた理由は、主に「インタビュー マニュアル」を書くときに、関連する Spring のソース コードが大量のテキスト記述、長いプロセス図、および多くのコンテンツの準備で書かれるためです。しかし、初心者にとってこの部分の内容を直接学ぶのはまだ非常に難しいため、私や他のパートナーに学習の抓手
提供するために、幸せな惑星とは何かを一緒に学びましょう!
このコラムは、学習プロセス中に、記事の各章で解決すべき目標とデザインのアイデアを組み合わせて、コーディングの実践プロセスに組み込む必要があります。コーディングを学習する際には、コンテンツのこの部分がなぜこの方法で実装されるのか、どのような設計パターンが使用されるのか、どのような種類の責任の分離を達成するためにどのような手段が使用されるのかを理解することが最善です。このような学習を通じてのみ、Spring ソース コードの実装プロセスをよりよく理解して習得することができ、将来の詳細な学習と実践的な応用のための強固な基盤を築くのにも役立ちます。
また、このコラムの学習はデザインパターンと組み合わされており、下部は SpringBoot ミドルウェアの設計と開発に対応しています。そのため、学習中に理解できないデザインパターンに遭遇した場合は、該当する資料を読むことができます。 Spring を学習すると、ミドルウェアのコンテンツを使って練習できます。
ソース コード: このコラムに含まれるソース コードはすべて現在のプロジェクトに統合されており、この章の対応するケースのソース コードと 1 つずつ照合できます。プロジェクト全体を入手したら直接実行することも、各章に対応するソース コード プロジェクトを個別に開いて実行することもできます。
学習プロセス中に、実行できない、最適化の提案、テキスト エラーなどの問題が発生した場合は、問題を送信するか、作者に連絡することができます:小傅哥
の WeChat、 fustack
コラムの内容を書く際には、各章に明確な設計図と対応するクラス図が示されているため、学習プロセスでは、コードがどのように記述されているかに注意するだけでなく、より重要なことに、これらの設計の内容がどのように派生するかを理解する必要があります。このプロセスでは、以下に示すように、Bean ライフサイクルのすべてのコアコンテンツが継続的に実現されます。
Spring Beanのライフサイクル |
---|
难度【★☆☆☆☆】第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、大手インターネット企業の履歴書と面接などをカバーします。しかし、この本は単なるインタビューの質問ではなく、また八本足のエッセイでもありません。その代わりに、プログラマに関連する簡単な数学的知識から始まり、Java のコア テクノロジを詳しく説明します。また、各章には実践で検証されたソースコードが搭載されているので、比較したり、一緒にプレイしたりすることで、より良い感触を得ることができます。
恥ずかしながら、本を出版するということは、テーマの選択、原稿の編集、編集、レビュー、加工、出版という出版社のプロセスではありません。しかし、この本は合計 107 ページ、117,000 ワード、20 章からなり、3 つのバイトコード フレームワーク (ASM、Javassist、Byte-buddy) と JavaAgent の使用法をカバーしており、ケース ソース コードの完全なセットが付属しています。
問題のフィードバック:
グループに参加してコミュニケーションをとる
このグループの目的は、技術学習と交流のための優れたプラットフォームを全員に提供することなので、広告はありません。 WeChat グループはメンバーが 100 名に達すると参加できなくなりますので、まず以下の QR コードをスキャンして WeChat (fustack) に著者「Xiao Fu 兄弟」を追加してください。 注: Spring学习加群
。
パブリック アカウント (バグスタック ワームホール スタック)
自分自身と他の人が何かを得ることができるように、プログラミングを学習するための最も簡単な方法で知識を共有し、独自の特殊なケースに焦点を当てて、共有し、成長させます。これまでに完了したトピックには次のものが含まれます。
データ収集の過程で、2 つの優れた手書き Spring フレームワーク ソース コード、tiny-spring と mini-spring を発見しました。これら 2 つの Spring フレームワークの簡略化されたバージョンは、非常に理解しやすく、学びやすく、使いやすいソース コード チュートリアル。すでに一定の基礎を持っている場合は、ソース コードを直接読んで学習できます。住所: