元の文
この記事は、最初の[プログラマ]斜め黄公共マイクロチャンネル番号に登場します
著者:黄斜め
復刻版は、資料の冒頭にソースと作者を明記してください。
この記事マインドマッピング
春は、なぜあなたは春を学びたいかは何ですか?
あなたの最初の接点ばねは、どのような時間枠内にありますか?誘致、私は私のような多くの人々は、春を知るために初めて使用するプロジェクトをやっていないと信じていますが、ソーや聞いたことが爆発の構造体とstructs2前に終了したフレームワークとして知られているインターネットの春と呼ばれるフレームワークであり、人々の多くの注目。
だから、それの終わりには魔法の春が存在しない、記録によると、それは重い批判無限のEJBフレームワークのため、だけでなく、構造体、そのようなフレームワークのために厄介2002年春に登場した時間枠は、また春の日から、この時間を不利な態度を持っていますそして、、Java開発者の大多数の中で莫大な苦難を保存します。
のは、春の定義のBaiduの百科事典を見て、Springフレームワークを作成したソフトウェア開発の複雑さに起因してみましょう。春は、基本的なJavaBeanのは、以前はEJBによって行われることを行うために使用されます。しかし、春には、サーバー側の開発の使用に限定されません。Javaアプリケーションの大半は、春の観点から単純、テスト容易性と疎結合から利益を得ることができます。
◆目的:エンタープライズアプリケーション開発の複雑さに対処するために
代わりに、基本的なJavaBeanのEJBを使用すると、より多くのエンタープライズ・アプリケーションを提供しています。◆機能
◆範囲:任意のJavaアプリケーション
スプリングは、コントロールの軽量反転(IOC)と、コンテナフレームの対向部(AOP)です。
痛みのポイントに対処するためのSpringフレームワークは、豆と統一された管理部であるJavaの開発と長期的に2人のプログラマが、存在し、春IOCとAOPはちょうど両方の問題を解決します。
実際には、モジュールに加えて、カラフルな春の生態学の内容は、地図上に述べた、そして今、春がspringbootとspringcloudに開発された、バックエンドテクノロジー・スタック、マイクロサービスのために非常に高品質のソリューションを提供しています。
今日では、春のフレームワークがあること、そして、春のフレームワークを開始する方法を学びます内容を知っている必要がありますJavaプログラマは、我々が今日議論されて話題になっているとなっています。
まず、春のベース部が学ぶべきかを見てみましょう。
スプリングベース
コア春はIOCとAOPであり、これら二つのことを知ってもらう、あなたは彼らが春を学んだと言う(ではない)ことができます
まずは、IOCの本質を見てみましょう、IOCはそれを行うには豆の管理フレームワークは、すべてのBeanが管理を統一され、自身がBeanコンテナを維持春、この方法で、すべてのインスタンスを使用する必要が面倒なシーンを記述する必要はありませんそして、インスタンスコードを繰り返したが、単純に文は完了し、それに依存して射出豆。
ここでは簡単な例です。
IOCのないバネがない場合、このような次のコードなどの管理例は、我々はコンストラクタメソッドにUserServiceのとBookServiceをするためにインスタンス化する必要がある場合、我々は不便することができ、注射および対応する依存性は、そうでなければ、自身の初期化を完了する方法はありませんA。私たちは、コントローラ自身のインスタンス化、それを使用する必要があります場合でも。
class QueryController{
UserService userService;
BookService bookservice;
QueryController() {
userService = new UserService;
userService.setUserDao(new UserDap()); bookservice = new BookService; bookservice.setBookDao(new BookDao()); } public static void main(Strings[] args) { QueryController queryController = new QueryController(); } }
私たちはその依存性注入の機能を使用して、春のフレームワークを使用すると、あなたは多くのものを保存することができます。次のコードに示すように。
@Controller
class QueryController{
@Autowired
UserService userService;
@Autowired
BookService bookservice;
}
もちろん、ここにも、このような本@Controller注釈として、バネ機能アノテーションで提供し、クラスはコントローラ、そのインスタンス化のSpring Beanのコンテナとして、およびコントローラに基づいて特別な処理、および@ Autowiredに宣言することができますIOCの春は、あなたは、Bean管理を達成するのを助けるためにあるため、注釈、あなたはUserServiceのインスタンスとBookServiceを置くことができるが、QueryController年に注入し、そしてこのすべてされています。
もちろん、UserServiceの自体をBookServiceを、また、それらの対応するDAO層(永続化層)に依存することができるが、IOCの方法を介して注入されます。
その後IOC、AOPは、それを達成する方法を見ています。
AOPの本質は、AOPの使用は、当社が事業に埋め込まれたコードを必要としないなどログインインターセプト、本人確認、セキュリティ管理、などの横方向のコードの再利用の同じ種類のいくつかを置くことができる機能の一元化を完了するための動的プロキシセクションを使用することですときで、彼らは多くの場合、何かに使い、あなたはカットを作るためにAOPを使用して、メソッドを指定することができますが、ビジネスのコードを実行して、ダイナミックプロキシ経由でAOPプロキシオブジェクトに追加傍受は、むしろ、コードを削減する必要がプロキシオブジェクトの実装に、それに応じて法のセクションを呼び出します。
以下のことを実現するための最も簡単なダイナミックプロキシのいずれか:
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class Main { public static void main(String[] args) { InvocationHandler handler = new InvocationHandler() { [@Override](https://my.oschina.net/u/1162528) public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println(method); if (method.getName().equals("morning")) { System.out.println("Good morning, " + args[0]); } return null; } }; Hello hello = (Hello) Proxy.newProxyInstance( Hello.class.getClassLoader(), // 传入ClassLoader new Class[] { Hello.class }, // 传入要实现的接口 handler); // 传入处理调用方法的InvocationHandler hello.morning("Bob"); } } interface Hello { void morning(String name); }
結果が出力されます
public abstract void test.Hello.morning(java.lang.String) Good morning, Bob
プロキシクラスコードで、ダイナミックプロキシAOPを達成するための機会です、あなたが自由のために遊ぶことができるのInvocationHandlerは、プロキシクラスのコードを使用します。
実際には、IOCとAOPに加えて、春しばしば、このようなJDBCなどの取引として、コンポーネントおよびモジュールを使用する別の例JMS(メッセージングサービス)というように私たちの多くが残っている、これらの共通の技術要素は、春のフレームワークに統合されています私たちは非常に簡単に使用インチ
springmvc
完成春、次のステップは、トークspringmvcでした、
百度百科の紹介によると、フォローアップ製品SpringFrameWorkのSpring MVCの部分は、春のWebフローの内部に統合されています。春は、Webアプリケーションにフル機能のMVCモジュールを構築するためのフレームワークを提供します。使用春のプラグイン可能なMVCアーキテクチャ、ときWEB開発のために春を使用するために、このようなStruts1(現在は一般的にない)、Strutsの2(一般的な旧プロジェクトの使用)など、他のMVC開発フレームワークと春の春のMVCフレームワークや統合を使用することを選択するというようにすることができます。
ウェブ開発者として、IOCとAOP Iの光春は、ページの開発をサポートすることはできません怖い、springmvc役割を使用すると、構造体の枠組みに最も効率的なWeb開発、入札別れを達成するのを助けるためにあります。
簡潔に述べると、SpringMVCは、一般的な開発モデルMVCを提供Mは、モデルレイヤで、データ・モデルを提供し、データベースと対話する責任、およびCは、コントローラを表し、及び流通過程のWebリクエストの原因である、と称されるHTTPリクエストは、一般的なコントローラは、非常に面倒なものですウェブのURLに対応するリクエストを処理し、対応するコンテンツを返し、機能のこの部分の内容は、あなたがVに必要見返りにビュー層があるページをレンダリングした後、提供します物事、オブジェクトを返すには、JSON可能性があり、それはこれらのタスクを処理する上でhtmlページ、ビュー層とすることができる、かもしれません。
MVCの開発モデルは、問題のWebエンジニアの多くを解決し、パイオニアのMVCフレームワークとしてspringmvcは、Javaの優位性になるためにも非常に自然です。
Java技術の開発と変更に伴い、今やJavaはWeb開発よりもはるかに行うことができました、そして今、Javaで実装されており、その多くは人気のマイクロサービス、ミドルウェアは、自然によって生態系の開発を春になりますこれはspringcloudは、業界のオープンソースフレームワークのベンチマークとなっている、springbootを表示されます。
時間の滞在が調整されたので、将来的に残りのコンテンツは、我々は、打ち上げに継続されます制限されます。
推奨リソース
図書の春には、ビデオチュートリアルは、私は皆にそれをお勧めしますいくつかの良いをピックアップしてもここで考えて、実際にはたくさんあります。
実際には、春は公式で最高の技術リソース次のとおりです。https://spring.io/
良い英語の学生は、公式ドキュメントに直接アクセスすることもできます。
図書
春ブーツの戦闘、丁雪峰(翻訳)
春のソース深さ分析
ビデオ
ここで私が見て、公開番号「春」の中に[プログラマ]黄斜めの返信で説明したように、一緒に皆のためのいくつかのかなり良いリソースを共有するためにビデオを置きます
ブログ
Javaテクノロジの蔵の「Javaプログラマーズ・ガイドの口コミ」
https://github.com/h2pl/Java-Tutorial
Javaは基本から高度なJavaの系統的レビューにあなたの助けに高品質の学習コンテンツのネットワーク全体を統合しました
インタビューガイド
ネットワーク全体最もホットなJavaのインタビューガイド、非常に実用的な200以上のページ、合計、レビューのためか、面接の準備をするかどうかは良いです。公共の川や湖でのJavaテクノロジは、[いいえ]自由を受けるために、「PDF」を返信します。
最後に書かれました
あなたはあなたにこの記事が参考に思うなら、あなたは「良い」ハを意味するものではありませんが、友人の前方円が私の最大のサポートあなたです、あなたのサポートが私の最大の励ましです。
この一連の記事上の任意の提案やコメントは、コメントはあなたのフィードバックを楽しみにして、私に教えても歓迎されています。