春の紹介
▍春とは
- SpringはJ2EEレイヤード軽量開発フレームワークであり、フルスタック(フルスタック)ソリューション、IOC(制御の反転、反転制御)およびAOP(アスペクト指向プログラミング、アスペクト指向プログラミング)カーネルを提供します。
- プレゼンテーション層SpringMVC、永続層SpringJDBCTemplate、ビジネス層トランザクション管理など、多くのエンタープライズレベルのアプリケーションテクノロジを提供します。また、オープンソースの世界で多くの有名なサードパーティフレームワークとクラスライブラリを統合でき、徐々に最も使用されるJavaEEエンタープライズになります。アプリケーションオープンソースフレームワーク
▍春の開発履歴
- ロッドジョンソン(春の父)は、2002年と2004年に肥大化した非効率的なJavaEEフレームワークに疑問を呈し、代わりに新しい設計を採用した「EJBを使用しないエキスパート1対1のJ2EE開発」を発表し、有名になりました。
- 従来のJavaEEは、「Write Once and Run Anywhere」の約束を果たしておらず、Johnsonの新しい設計は、各レイヤーにシンプルで強力なソリューションを提供します。このワンストップサービスは「フルスタック」です。
- 2017年9月にリリースされたSpringSpring 5.0 General Edition(GA)のクラシックバージョンは、今日の企業が求める現在の最適なソリューションになっています。
実際、SpringとEJBの間でどちらが優れているかは、誤った提案です。EJBはJavaEEの従来の厳密な仕様であり、SpringはJavaEEのシンプルで柔軟なフレームワークです。ロッド・ジョンソンの批判は否定的ではありませんが、アカデミックスクールに基づいてより美しいデザインを求めています。
▍春のメリット
- 便利なデカップリングと開発の簡素化
Springが提供するIoCコンテナーを介して、オブジェクト間の依存関係をSpringに渡して、ハードコーディングによって引き起こされる過度のプログラムカップリングを回避できます(たとえば、サービスレイヤーのnew
Daoレイヤーオブジェクトは一般的なカップリングです)。このようにして、上位のアプリケーションにさらに集中できます。 - AOPプログラミングのサポート
Springが提供するAOP機能により、アスペクト指向プログラミングを行うのに便利です。つまり、OOPが簡単に解決できない問題を解決することです。 - 宣言型トランザクションのサポート
Springでは、単調で退屈なトランザクション管理コード(begin、commit、rollbackの手動制御)を取り除くことができますが、宣言型メソッドによる柔軟な管理が可能です。 - 便利なプログラムテスト
Springでは、テストはもはや高価な操作ではありませんが、指先で実行できるものです。SpringはJunitをサポートしており、アノテーションを使用してSpringプログラムを簡単にテストできます。 - さまざまな優れたフレームワークの統合を促進する
Springは、さまざまな優れたオープンソースフレームワークを排除するだけでなく、Springでさえさまざまなフレームワークの使用の難しさを軽減できます。Springは、Struts、Hibernate、Hessian、Quartzなどをサポートしています。 - Java EE APIの使用の難しさを軽減
Springは、多くの使いにくいJava EE API(JDBC、JavaMail、リモート呼び出しなど)に薄いカプセル化レイヤーを提供します。Springの単純なカプセル化により(記述する必要はありません) Utilクラスを手動で!)、Java EEAPIの使用の難しさが大幅に軽減されます。 - Javaソースコードは古典的な学習例です
。Springのソースコードデザインは、絶妙で、構造が明確で、独創的な工夫が施されています。これは、マスターによるJavaデザインパターンの柔軟な使用とJavaテクノロジーの高度な知識を反映しています。Springフレームワークのソースコードは間違いなくJavaを学ぶ唯一の方法です。
春のクイックスタート
▍開発手順
①Spring関連パッケージのMaven座標をインポートする
②Daoインターフェースとその実装クラスを書く
③idと完全なクラス名クラス間のマッピングを実現するためにxmlファイルを作成および構成します
④SpringのAPIを使用して例を取得▍コードの実装
①pom.xmlに依存関係を導入する
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
</dependencies>
②ダオ層の標準構造
// dao.UserDao
public interface UserDao {
public void sayHi();
}
// dao.impl.UserDaoImpl
public class UserDaoImpl implements UserDao {
public void sayHi() {
System.out.println("Hello!!");
}
}
③新しいapplicationContextを作成し、リソースの下で構成します
<bean id="userDao" class="dao.impl.UserDaoImpl"></bean>
④サービスレイヤーの利用
public class UserDaoDemo {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao)app.getBean("userDao");
userDao.sayHi();
}
}