序文
SSMは、プログラマーが精通している必要のあるフレームワーク開発プラクティスです。フレームワークの原則と実装メカニズムについてどの程度知っていますか。多くの人がそれを知っていて、その理由を知らず、実際の戦闘フレームワークをうまく使うことができません。これはまた、彼らの仕事をより良く開発し、適用することができないことにつながります。
市場にはSSMに関する学習資料もたくさんありますが、体系的に整理されておらず、体系的に学ぶことは困難です。真秋祭りと国民の日を利用して、何千ページものSSM研究ノートを整理しました。
主な特徴:
- 1.1。単純なものから複雑なものまで、浅いものから深いものまで
- 2.2。読者がすばやく学び、理解できるように、シンプルで細心の注意を払った詳細なサンプルコードを提供します
- 3.3。Java Web開発テクノロジーの包括的なカバレッジ、およびJavaの基盤となるテクノロジーやその他の主流のライブラリとフレームワークの紹介
- 4.4。原理とメカニズムの分析に注意を払い、簡単な論理図を通してそれらを示します
- 5.5。典型的なプロジェクトケース、強力な実用性は、実際のプロジェクトのテンプレートとして使用できます
本日は、カタログ概要+メインチャプター+メインコンテンツから詳しくご説明させていただきますので、皆様のお役に立てれば幸いです(スペースに限りがあるため、メインコンテンツは写真で共有させていただきます)。
01カタログ概要表示
02メインチャプター+メインコンテンツ表示
最初のSpringコアフレームワーク(第1章から第6章)
第1章春の概要
Javaは、オブジェクト指向のクロスプラットフォームプログラミング言語であり、一度コンパイルしてどこでも実行できるJVM(Java Virtual Machine)を導入します。開発者は、オペレーティングシステムやプロセッサの違いによって、アプリケーションエラーを引き起こしたり、起動に失敗したりする必要がなくなります。動揺。
第2章SpringloCコンテナへのプローブ
IoCコンテナは、Springのコアコンセプトとコンテンツです。これは、オブジェクトを初期化する従来の新しい方法に代わるものです。XMLファイルで構成されたBean定義を読み取ることにより、コンテナーのBeanインスタンスとそのライフサイクルを自動的に作成および管理します。最も重要なことは、依存オブジェクトをBean定義で構成できることです。 、および依存関係の構成に従って関連する依存関係を自動的に挿入して、オブジェクト間の結合の程度を減らし、分離の効果を実現します。Springは、コンストラクターインジェクションや設定値インジェクションなど、さまざまな依存関係インジェクションメソッドを提供します。
第3章Webプロジェクト環境の構築とプロジェクトの作成
開発言語またはアプリケーションフレームワークを学習するための最も直感的で最速の方法は、適切な環境をセットアップし、HelloWorldの紹介例を作成することです。この章では、開発環境のセットアップから始めて、Maven Webプロジェクト(プロジェクト名はssmi)を作成し、このWebプロジェクトをSpringフレームワークベースのプロジェクトとして構成し、予備的なコンテナー構成を実行し、最後に簡単な例を使用して初期化を示します。コンテナの操作とコンテナからのBeanの取得。
第4章SpringloCコンテナの高度
この章では、第2章でのBeanと依存関係の構成の予備的な紹介に基づいて、より多くのBean初期化シナリオに対応するためのBeanインスタンス化のさまざまな構成方法をさらに紹介します。id属性とclass属性に加えて、スコープ属性(scope)、レイジーロード属性(lazy-init)、初期化および破棄メソッド(init-method、destroy-)など、Beanの特性と動作を定義するためにBeanのより多くの属性を設定できます。メソッド)など。
第5章注釈とコードに基づく構成
XMLファイル構成の使用は、Springの最も初期の構成方法です。大規模および中規模のプロジェクトは、関数または異なる名前名に基づいて複数の構成ファイルに分割されます。各構成ファイルには、より多くの構成コンテンツが含まれる場合があり、その結果、構成ファイルのメンテナンス作業が大量になります。また、エラーが発生しやすくなります。
第6章春のテスト
ユニットテストと統合テストは、通常、開発者が実行する必要のあるテストです。Springのテストモジュールspring-testは、両方のタイプのテストを適切にサポートします。ユニットテストでは、基本的なテストフレームワーク(JUnit、TestNG)とモックフレームワークに基づいて、Springが提供する高度なモックオブジェクトと便利なテスト共有メソッドを使用して、Springアプリケーションで単一クラスの分離テストを実現します。統合テストの場合、Springは基本的なテストフレームワークを拡張し、注釈ベースのテストフレームワークを提供します。コンテナの初期化、コンテナのキャッシュ、環境の選択、データベーストランザクション管理、およびその他の機能は、テストクラスでの構成を通じて完了することができるため、テスト作業が大幅に簡素化されます。 、テスト効率を向上させます。
2番目のSpringMVCフレームワーク(第7-10章)
第7章SpringWebMVCの概要
SpringとStructsの組み合わせは、かつてJava Web開発フレームワークの一般的な組み合わせでした。SpringはBeanと依存関係の管理コンテナとして使用され、Structsはフロントエンドの処理と表示を担当していました。Spring MVCは、Springコアフレームワークのコアとして中央コントローラー(DispatcherServlet)を備えたMVCフレームワークを実装し、Springコアコンテナーとシームレスに統合します。
第8章データタイプの変換、検証、および例外処理
文字列タイプの属性値はXMLBean構成に直接挿入され、日付などのオブジェクトタイプの属性値は、Bean構成の文字列タイプ値を介して挿入することもできます。Springコンテナは、文字列タイプの属性値をオブジェクトタイプの属性値に自動的に変換できます。フレームワークは、プロパティエディタ(PropertyEditor)とコンバータサービス(ConversionService)を使用して実現します。
第9章SpringMVC Advanced
Spring + Spring MVCに基づくプロジェクトでは、1つのコンテナーのみを維持するか、親子階層コンテナーを使用して、コアコンテナーとWebコンテナーを分離できます。Spring MVCフレームワークはDispatcherServletを使用してリクエストをインターセプトしてディスパッチしますが、画像やスタイルなどの静的リソースファイルの場合、通常はインターセプトする必要はなく、直接リリースできます。
第10章SpringMVCテストフレームワーク
Spring MVCテストフレームワークは、Webアプリケーションをテストする簡単な方法を提供します。Webサーバーを起動する必要はありません。ユニットテストフレームワークに基づいて、ブラウザー要求の送信をシミュレートし、シミュレートされたHTTP応答を返すことができます。MVCテストフレームワークは、ユニットテストフレームワークに基づいた多くの迅速な検証方法も提供します。これにより、要求と応答のステータスと内容を詳細に検証できます。SpringMVCテストフレームワークは、独立したテストと統合テストをサポートし、従来のビューモデルとJSONおよびXMLコンテンツタイプの要求と応答を適切にサポートします。さらに、テストフレームワークを使用して、ファイルのアップロード速度をテストすることもできます。
第3章データテクノロジー(第11章から第14章)
第11章データベースおよびJavaデータアクセステクノロジ
データベース開発は、アプリケーション開発の不可欠な部分です。リレーショナルデータベースは、最も広く使用されているデータベースタイプです。OracleとMySQLは、それぞれ商用およびオープンソースのリレーショナルデータベースの「リーダー」であり、どちらも現在Oracle製品です。Javaは、リレーショナルデータベースにアクセスするための標準の統合インターフェイスJDBCを公式に定義しています。データベースベンダーは、標準インターフェイスに基づいてデータベースアクセス操作のドライブと実装を提供します。データベース接続の確立と解放のオーバーヘッドを節約するために、データベース接続プールテクノロジとサードパーティパッケージが登場しました。これにより、アプリケーションとデータベースの相互作用のパフォーマンスを大幅に向上させることができます。
第12章MyBatis入門
HibernateとMyBatisは、Javaで最も一般的に使用されるORMフレームワークです。どちらにも独自の長所があり、同じプロジェクトで補完的に使用することもできます。MyBatisは、軽量の半自動フレームワークです。他のサードパーティパッケージに依存する必要はなく、プロジェクトをインポートすることで開発できます。この章では、簡単な例から始めて、MyBatisのコアインターフェイス、クラス、グローバル構成、オブジェクト、およびテーブルのマッピングの学習を徐々に拡張します。
第13章高度なMyBatis
MyBatisは、シンプルな内部操作メカニズムを備えた軽量のORMフレームワークです。MyBatisは、いくつかの基本的な機能に加えて、タイププロセッサ、オブジェクトファクトリ、プラグインなどの高度な機能の開発と構成も提供します。動的SQLを使用して、メソッドをより柔軟にマッピングするためのSQLステートメントを構成できます。
第14章Springデータアクセスとトランザクション管理
SpringフレームワークはJDBCをカプセル化し、データベース操作を簡素化するためにJDBC操作用のテンプレートクラス(JdbcTemplate)を提供します。JdbcTemplateは、DriverManagerDataSourceタイプのデータソースオブジェクトを使用して構築されますが、このタイプのデータソースはデータ接続プールを実装しません。サードパーティの接続プールライブラリ(DBCPやC3P0など)をインポートして、接続プール機能を実装できます。SpringはHibernateと密接な関係があるため、springormモジュールはデフォルトでHibernate ORMフレームワークとの統合を提供し、このモジュールには標準のJPA仕様インターフェイスのサポートも含まれています。
4番目のSSM統合開発(第15章、16章)
第15章SSM統合の概要
SSM統合フレームワークでは、Springはバックエンドコンポーネントのコンテナとして使用され、Spring MVCは中央コントローラとフロントエンド管理コンポーネントを提供します。小規模なプロジェクトでは、2つを1つに結合することもできます。MyBatisとSpringの間の架け橋として、MyBatis-Springは2つのシームレスな統合を実現します。Springは、MyBatisのセッションファクトリオブジェクトを管理します。MapperFactoryBeanクラスを使用してマッピングインターフェイスプロキシBeanを構成するだけでなく、コンポーネントスキャンのようにスキャンマッパーインターフェイスを自動的にプロキシすることもできます。SSM統合プロジェクトでは、ビジネス機能に加えて、例外やログなどの基本機能の統合も考慮する必要があります。
第16章SSM統合の例
この章では、レポートプロジェクトを例として取り上げ(プロジェクト名はDaport、Data AnalysisReport)、プロジェクトの要件から始まり、システム分析、システム設計、システムフレームワークの構築、さらにはコード開発のプロセス全体にまで及びます。プロジェクトは、準フロントエンドとバックエンドの分離アーキテクチャを使用します。フロントエンドはExt JSフレームワークを使用してUIを表示し、バックエンドはSSMフレームワークを使用してサービスを提供し、JSPページはセッションとアクセス許可を管理するために使用されます。
第5章高度な開発技術(第17章、18章)
第17章SpringAOPおよびMVCインターセプター
AOPは、OOPに続くもう1つの重要なプログラミングのアイデアであり、OOPの補足および拡張として、コードの再利用性と開発効率をさらに向上させます。Javaでは、AOPは、プロキシ設計パターンと動的プロキシテクノロジを介して、コード構造とコード機能に実装できます。
第18章SpringSecuritフレームワークとマルチスレッド
ビジネスロジックコードにパーミッションコードが混在していると、ビジネスコードが冗長になり、混乱し、エラーが発生しやすくなります。Spring Securityは、Springが提供するセキュリティフレームワークであり、元のビジネスロジックコードに影響を与えることなくリソースレベルを保護するためのフィルタの使用と、メソッドレベルのアクセス制御を実現するためのSpringAOPの使用を実現できます。この章では、主にSpring Securityフレームワークの内容と使用法を紹介し、JavaマルチスレッドとそのSpringでのアプリケーションについても簡単に紹介します。
やっと
読者が読みやすいように、本で使用されているさまざまなツール、本のすべての例のソースコード、本のプロジェクトケースのソースコード、および関連する設計ドキュメントはすべて、次のサポート機能を提供します。
この本の読者:
- Spring、Spring MVC、MyBatisの統合開発を包括的に学ぶ必要がある人。
- Spring、Spring Web、SpringBootの開発者。
- JavaWebシステムのアーキテクチャと設計者。
- JavaEE開発エンジニア。
- Javaシステムのアナリストとデザイナー。
- プロジェクト開発のレベルを向上させたい人。
- 専門の訓練機関からの訓練生;
- ソフトウェア開発プロジェクトマネージャー。