JD.com 購入 ダンダン購入
このコラムのすべてのコードは Java 8 + Spring Boot 2.2.1.RELEASE + Spring Cloud Greenwich.SR4 + Spring Data Moore-SR4 に基づいて開発されており、依存関係の管理は Maven に基づいています。
それぞれのケースは独立した SpringBoot または Java コマンド ライン アプリケーションであり、相互干渉を避けるために独立して起動できますが、Maven POM を共有します。
ソース コードをダウンロードした後、まずルート ディレクトリで docker-compose up コマンドを実行して、関連する MySQL、Redis、ES、RabbitMQ およびその他のシステムを Docker 経由で実行してから、アプリケーションを起動します。
列のほとんどは、1 つのコンポーネント MySQL のみに依存しています。 docker-compose の起動が難しい場合は、最初に docker-compose.yml 内の関連コンポーネントにコメントし (ES や RabbitMQ にコメントするなど)、その後で docker-compose.yml を開始することができます。設計の章の後半でこれを使用する必要があり、同時に pom.xml 内の関連する SpringBoot Starter モジュールを削除する必要があります。
ソース コードのルート ディレクトリには、readme.md マークダウン ファイルがあり、各記事に対応するソース コードの場所をリストするディレクトリがあります。同時に、各ソース コード パッケージの下に、それぞれの記事をリストする readme.md ファイルがあります。この記事の各セクションのソース コード パッケージ名。
ソースコードのほとんどの場合、間違った実装と正しい実装を表すために間違った名前付け方法が使用されています。実装を本の内容と比較して理解できます。
一部のケース (SQL インデックス記事など) では、現在時刻に基づいてテスト データが生成されるため、記事内のテスト結果がローカルで再現できるとは保証されず、テスト ケースを自分で調整する必要があります。
リンクをクリックして各セクションのコード フォルダーに移動します
各フォルダーには、各セクションのソース コード フォルダーをリストした readme.md ファイルもあります。
[思考]は思考や議論に関わるコードを表します。
[Extended] は拡張読み取りに関与するコードを表します
[補足] 本書に掲載されていないその他のコードを示します。
1.0: Java8
2.1 並行ツール ライブラリを使用しても、スレッド セーフティの問題がないことを意味するわけではありません: concurrenttool
2.2 コードのロック: 「ロック」を心配しないでください: ロック
2.3 スレッド プール: ビジネス コードで最も一般的に使用され、最もエラーが発生しやすいコンポーネント: スレッド プール
2.4 接続プール: 接続プールに問題を起こさないでください: connectionpool
2.5 HTTP 呼び出し: タイムアウト、再試行、および同時実行性を考慮しましたか: httpinvoke
2.6 ビジネス コード内の Spring 宣言トランザクションの 20% が正しく処理されない可能性があります: トランザクション
2.7 データベースインデックス: インデックスは万能薬ではありません: sqlindex
2.8 平等の問題: 自分がプログラムの参加者であることを判断する方法: 平等
2.9 数値計算: 精度、丸め、オーバーフローの問題に注意する: 数値計算
2.10 コレクションクラス: 落とし穴だらけのリスト操作: コレクション
2.11 Null 値の処理: 不明瞭な null と迷惑な null ポインタ: nullvalue
2.12 例外処理: 何か問題が発生したときに盲目になってはいけない: 例外
2.13 ロギング: ロギングは思っているほど単純ではありません: ロギング
2.14 ファイル IO: 効率的かつ正確なファイルの読み取りと書き込みを実現するのは簡単ではありません: io
2.15 連載:何度でも、同じ人ですか?
2.16 Java 8 の日付と時刻のクラスをうまく活用し、「3 番目に古い」落とし穴のいくつかを回避します。
2.17 「自動送信」では OOM が不可能だと考えないでください: oom
2.18 リフレクション、アノテーション、ジェネリックスが OOP に遭遇した場合にどのような落とし穴があるか: 高度な機能
2.19 Spring フレームワーク: IoC と AOP は拡張機能のコアです: springpart1
2.20 Spring フレームワーク: これは私たちにとって多くの作業を行ってくれましたが、複雑さももたらしました: springpart2
3.1 コードの重複: コードの重複を解決するための 3 つのトリック: redundantcode
3.2 インターフェース設計: システム間の対話言語は統一する必要があります: apidesign
3.3 キャッシュ設計: キャッシュは、おまけに、またはさらなる侮辱になる可能性があります:cachedesign
3.4 ビジネスコードが書かれたとき、それは実稼働の準備ができていることを意味しますか:productionready
3.5 非同期処理は簡単に使用できますが、誤って使用することも非常に簡単です: asyncprocess
3.6 データ ストレージ: NoSQL と RDBMS はどのように相互補完し、相互に補完しますか? :nosqluse
4.1 データ ソース: クライアント側では何も信頼できません: clientdata
4.2 セキュリティ: お金に関しては、スワイプ防止、限定的かつ強力な保護を考慮する必要があります: securitylastdefense
4.3 データとコード: データはデータ、コードはコード: dataandcode
4.4 機密データを正しく保存および送信する方法: 機密データ
5.1 Java アプリケーションの問題を特定するためのトラブルシューティング ルーチン: N/A
5.2 Java の問題を分析して特定するには、次のツールを有効に活用する必要があります。
5.3 Java プログラムを仮想マシンから Kubernetes に移行する際のいくつかの落とし穴: N/A
ソース コードが役立つと思われる場合は、Star へようこそ