テン共通のフレームワーク:
一、SpringMVC
二、春
三、MyBatisの
四、ダボ
五、Mavenの
六、RabbitMQの
七、Log4jの
八、Ehcacheの
ナイン、Redisの
十、Shiro
拡張読書:
一、SpringMVC
春のWeb MVCは、MVCアーキテクチャ・パターンの使用は、ウェブ層が任務を分離するという考えに基づいて要求駆動型のWeb MVCデザインパターンの軽量Webフレームワークの種類のJava実装で、リクエストドライバが使用ベースを指し、要求 - 応答モデル、フレームワークの目的は、私たちは私たちの日常Web開発を簡素化するためにも、開発、春のWeb MVCを簡素化することです。
モデル(モデル)、彼らは一般的にPOJOコンポーネント意志データとアプリケーションをカプセル化します。
ビュー(ビュー)は、モデルデータをレンダリングするための責任があると一般的には、クライアントのブラウザが解釈できる、HTML出力を生成します。
ユーザの要求を処理し、適切なモデルを確立する責任コントローラ(コントローラ)、およびビューをレンダリングするためにそれを渡します。
春のウェブモデル - ビュー - コントローラ(MVC)デザイン・フレームワークは、DispatcherServletの中心に構築され、すべてのHTTPリクエストとレスポンスを処理します。
春のWeb MVCフレームワーク・フロー処理要求元http://www.1b23.com/forum.php
次のように具体的な実施手順は次のとおりです。
図1に示すように、まず、ユーザが要求---->フロントエンドコントローラ、コントローラは、ページ要求情報(例えば、URL)を選択決定するコントローラのフロントエンドを送信し、即ち論理コントローラの制御の前に、それに委託要求に従って処理しますセクション;図2-1のステップ2。
2は、ページコントローラは、要求、処理関数を受けて、あなたはまず、オブジェクトは春のWeb MVCでのコマンドオブジェクトと呼ばれ、検証されるオブジェクトにパラメータを収集し、バインド要求する必要があり、その後、コマンドオブジェクトは、ビジネス・オブジェクトに委託します処理は、図2-1のステップ3,4,5、処理後のModelAndView(ビュー名と論理データ・モデル)を返します。
図3に示すように、バックコントローラの制御の前端は、名前が返される論理ビューによれば、適切なビューがレンダリングされる選択し、レンダリングするためのモデルビューへのデータ;ステップ2-1、図6及び7;
図4は、コントローラの先端が再び制御を取り戻すために、応答は、図3のステップにおいて、ユーザに返さ2-18;この全体を終了します。
二、春
2.1、IOCコンテナます。http://www.cnblogs.com/linjiqin/archive/2013/11/04/3407126.html
IOCコンテナは、依存性注入機能を有する容器は、IOCコンテナは、インスタンスの位置決め、およびアプリケーション構成内のオブジェクト間のオブジェクトの依存関係です。アプリケーションが直接IOCコンテナによってコード、アプリケーションアセンブリに関連する新しいオブジェクトを必要としません。春たBeanFactoryでIOC容器の実際の表現です。
2.2、AOPます。http://blog.csdn.net/moreevan/article/details/11977115
簡単に言えば、それは、ビジネスの独立したものであるが、ビジネス・ロジックまたはカプセル化と呼ばれる共通モジュールの責任である、システムを削減し、モジュール間の結合度を減らすために、コードを複製することは容易、かつ将来の操作性と保守性を促進しますセックス。AOPは、水平の関係で表されます。
包装用のAOPの横断の懸念は、次のシナリオに特異的に使用することができます。
認証権限のキャッシング、コンテンツ配信キャッシュコンテキストレイジートレース、プロファイリングとピクチャーパフォーマンスの最適化パフォーマンスの最適化持続性持続性リソースプールリソースを追跡するために、レコードを監視し、遅延ロードのデバッグデバッグログを読み込みエラー処理エラー処理を渡すには、同期同期サービスの取引をプール
三、MyBatisの
MyBatisの永続化フレームワークは、発行済普通SQLクエリ、ストアドプロシージャと高度なマッピングをサポートすることです。MyBatisのは、取得手動で設定JDBCコードとパラメータおよび結果セットのほぼすべてを排除します。MyBatisのは、データベースレコードに設定し、地図プリミティブ、地図インタフェースとJavaのPOJO(プレーン古いJavaオブジェクト、普通のJavaオブジェクト)のためのシンプルなXMLまたは注釈を使用しています。
全体のプロセス:
(1)構成および初期化トリガ条件をロードする:メモリに記憶された1つのMappedStatementの(着信パラメータマッピング構成を含む、SQL文を実行し、マッピング構成の結果)オブジェクト、になるようにSQL構成情報をロードするために、構成ファイルをロードします。
(2)呼要求を受信すると、トリガ:SQLオブジェクトと着信プロセスパラメータのID:下位層の処理要求の処理に要求を渡すMyBatisの着信パラメータを提供するAPIコールを。
(3)操作要求処理をトリガ:界面層は、API受信パラメータオーバー要求を渡す:SQLパラメータと着信オブジェクトのID
プロセス:
(A)に対応する目標MappedStatement SQLのIDを検索してください。
最終パスを取得し、実行するSQLを実行するMappedStatementオブジェクトパラメータを解析渡されたパラメータオブジェクトから(B)。
(C)は、SQL文の最後の実行に応じて、データベース接続を取得し、実行し、結果を得るためにデータベースに渡されたパラメータを取得します。
変換処理で得られたマッピング構成MappedStatementオブジェクトの実行結果の結果に基づいて、(D)、及び最終的な処理結果を得ました。
(E)の接続リソースを解放します。
(4)最終的な処理結果を処理結果が返さ戻されます。
最も強力な機能の1つは、動的ステートメント・MyBatisの機能です。あなたはJDBCまたは類似のフレームを使用して、以前の経験を持っている場合、あなたはそれがスペースを忘れていないか、または列と他の列の後ろにカンマを省略しないことを確認することで一緒にどのように痛みを伴うSQL文の条件を理解します。動的ステートメントは、完全に痛みを取り除くことができます。
四、ダボ
ダボは、RPC(リモートプロシージャコールプロトコル)、リモートサービス呼び出しプログラム、サービスおよびSOAガバナンスプログラムの高い性能と透明性を提供し、分散型サービス・フレームワークです。簡単に言えば、ダボは、サービス・フレームワークで、需要を分散していない場合は、実際には、必要があり、分散する場合にのみ、そのような分散サービスフレームワークのためのダボの需要があり、基本的にサービスと呼ばれていませんもの、それは、リモートサービスの呼び出し用の分散フレームワークを意味します。
1、透明リモートメソッドの呼び出し、任意の侵入APIなしで、ローカルメソッド呼び出しリモートメソッドだけの簡単な設定を呼び出すのと同じ。
2、あるいはF5ハードウェアロードバランサは、等、コスト、単一の点を低減することができるネットワークを含むソフト負荷分散とフォールトトレランス。
3、サービス登録と発見自動、もはや死んサービスプロバイダアドレス、IPアドレス、レジストリベースのクエリインタフェース名サービスプロバイダを記述する必要がなく、スムーズにサービスプロバイダを追加または削除することができます。
ノード役割説明:プロバイダ:公開サービスプロバイダ。消費者は:サービスの消費者は、リモートサービスを呼び出します。レジストリ:レジストリサービスの登録と発見。モニター:通話時間の統計的なサービスは、監視センタ通話時間を調整します。コンテナ:実行コンテナサービス。
五、Mavenの
Mavenプロジェクトの管理と自動化ツールを構築し、より多くの開発者は、jarファイルでプロジェクトを管理するためにそれを使用。しかし、私たちのプログラマのために、我々は機能性を構築するためのプロジェクトです最も懸念しています。
六、RabbitMQの
メッセージキューは、非同期処理をした、いくつかすぐに抽出復帰し、時間のかかる操作せずに、プロジェクトで通常であり、この処理の非同期要求が大幅にそれによってシステムのスループットを向上させ、サーバーの応答時間を節約します。
RabbitMQのは非常に信頼性の高い同時実行AMQPメッセージキューサーバーは、Erlangで実装されています。
アーランは、動的プログラミング言語の種類の関数です。メッセージパッシングによって通信プロセス間で、それぞれが俳優Erlangのプロセスに対応する、アーランに相当します。比較すると、共有メモリ、ロックの直接費用の除去は、(ロック基礎となる実装のErlang仮想マシンのアプリケーションを考慮していない)直接プロセス間メッセージによってもたらされるメリットを伝える渡されます。
AMQP(アドバンスト・メッセージ・キュープロトコル)仕様は、メッセージシステムを定義します。この仕様は、様々なサブシステムがメッセージをどのように相互作用するか、分散システムを記述しています。
七、Log4jの
OFF、FATAL、ERRORに分け、優先度、WARN、INFO、DEBUG、ALLまたはロギングのレベルを定義します。
八、Ehcacheの
Ehcacheのはなど、速いリーンで、HibernateはデフォルトのcacheProviderで、プロセスの純粋なJavaのキャッシュフレームワークです。Ehcacheのは、広く使われているオープンソースのJava分散キャッシュです。主に一般的なキャッシング、Java EEおよび軽量コンテナの。これは、メモリとディスクストレージ、キャッシュローダー、キャッシュの拡張、キャッシュ例外ハンドラ、バッファGZIPサーブレットフィルタ支持RESTとSOAP APIの特性を有しています。
利点:1、2、迅速、簡単な3、4つの、複数のキャッシング戦略は、2つのデータ・キャッシュがあります:メモリとディスク、容量の問題5を心配する必要はありません、キャッシュされたデータはにより、仮想マシンのディスク6を再起動する過程で書かれていますキャッシュ領域RMI、API、等の複数のリスニングソケットキャッシュとキャッシュマネージャ8を有する、分散キャッシュ7に挿入することができ、キャッシュマネージャは、複数のインスタンスをサポートしており、一例として図9に示すように、Hibernateはキャッシュ実装を提供します
短所:1、ディスクキャッシュ非常に占有ディスクスペースを使用して:アルゴリズムはまた、単純なアルゴリズムのキャッシュの効率化につながる簡単なDISKCACHEは、非常に高いためです。これは、直接記憶のちょうど追加要素です。このため、非常に迅速に検索要素。あなたは非常に頻繁にアプリケーションにDISKCACHEを使用している場合は、ディスクがいっぱいすぐになります。
2は、データのセキュリティを保証することはできません:ファイルの競合は、その後、キャッシュを再構築した場合、突然のjavaを殺すとき、それは紛争であってもよいし、Ehcacheのソリューションです。キャッシュの時間データを保存する必要があるためこれは不利かもしれません。もちろん、キャッシュは単純に加速するが、データのセキュリティを保証することはできません。あなたが保存されたデータのセキュリティを確保したい場合は、Bekeley DB Java Editionのバージョンを使用することができます。これは組み込みデータベースです。収納スペースの安全性と利用を確保するために。
ナイン、Redisの
Redisのキーと値のストレージシステムです。ハッシュ(ハッシュタイプ) - とMemcachedのは、同様に、それは文字列(文字列)、リスト(一覧)、SET(セット)、ZSET(順序集合ソートセット)を含む、比較的保存された値の型をサポートしています。これらのデータ型は、追加/削除して、交差点や労働組合、その差よりリッチな操作で、プッシュ/ポップをサポートされており、これらの操作はアトミックです。これに基づき、Redisのは、並べ替えの異なるさまざまな方法をサポートしています。memcachedのと同じように、効率性を確保するために、データはメモリにキャッシュされています。Redisの差は、定期的にディスクに書き込まれたデータで更新されたり、追加のログファイルを書き込む動作を変更するために、そしてこれに基づいてマスタースレーブ(マスタとスレーブ)の同期を実現します。
Redisのは、唯一の永続化のためのディスクを使用して、メモリに完全データベース。多くの重要なデータストレージと比較すると、Redisのデータ型の富を持っています。Redisのは、任意の数のサーバーからデータをコピーすることができます。
1.2、Redisの利点:
(1)非常に速い:毎秒毎秒約81000+、レコード、11万の収集を行うことができ、Redisのは非常に高速。
(2)豊富なデータ型のサポート:Redisのはサポートしていますほとんどのほとんどの開発者がすでに知っている、順序セットリスト、セット、ハッシュデータ型などがあります。私たちはより良い、そのデータ型によって対処することができますどのような問題を知っているので、これは、さまざまな問題を解決することが非常に容易になります。
(3)操作は原子性あり:すべての操作が確実にRedisの原子、二つのRedisサーバー・クライアント・アクセス後の値が同時に更新されますので注意してください。
(4)多機能ユーティリティは:Redisのは、例えば、複数のキャッシュに使用することができる多機能ツールは、メッセージ、キューが使用(Redisのネイティブサポートは、パブリッシュ/サブスクライブ)、そのようなWebアプリケーションのセッションのような任意の短期的なデータ、アプリケーション、 Webページには、カウントを打ちます。
1.3、Redisの欠点:(1)シングルスレッド(2)メモリ消費量
十、Shiro
Apacheの史郎は、認証と認可を簡素化するために設計されたJavaのセキュリティフレームワークです。史郎するJavaSEとJavaEEのプロジェクトで使用することができます。主に、認証、許可、セッション管理と企業の暗号化に対処するために使用されます。次のように特定の機能のポイントを史郎:
(1)認証/ログイン、ユーザが適切なIDを持っていないことを確認してください。
ユーザーが役割を持っていることを確認します。それは、ユーザーがそのような一般的なようなことを行うことができるかどうかを決定することであり、(2)ユーザーが権限を認証したことを確認し、確認するためにその権限を承認しました。またはきめの細かいユーザーがリソースに対するアクセス権を持っているかどうかを確認します。
(3)セッション管理は、つまり、1つのセッションでユーザがログインした後、終了の不存在下で、それはセッション内のすべての情報があります。セッションは、通常のJava SE環境にすることができ、それをWeb環境としてすることができ;
(4)暗号化し、そのような代わりの平文を格納するデータベースに格納された暗号化パスワードなどのセキュアなデータを、。
(5)Webサポートは非常に簡単にウェブ環境に統合することができ、キャッシュ:、これは効率を高めることができるキャッシュは、そのような自分のユーザー情報は、ユーザーがログインすると、役割に/権限はすべての時間をチェックする必要はありません。
このようなスレッドに別のスレッドを開くことを確認する(6)しろサポートはマルチスレッドアプリケーション、権限が自動的に過去に増殖させることができます。
(7)試験のサポートを提供します。
(8)(これらは許可されている場合)同一他のユーザへのアクセスであることをふりをユーザに可能にします。
(9)私を覚えて、これは非常に共通の特徴である、すなわち最初のログイン後、次の時間が記録され戻ってきません。