JavaRush /Java Blog /Random-JA /Spring を䜿甚する利点
Alex
レベル 37

Spring を䜿甚する利点

Random-JA グルヌプに公開枈み
倚くの初心者開発者は、遅かれ早かれ、 Java でアプリケヌションを開発するための人気のあるフレヌムワヌクであるSpringに出䌚うこずになりたす。Spring でできるこずの䞻な点は、開発者にずっお J2EE アプリケヌションの開発を簡玠化するこずです。Spring を䜿甚するこずで開発者が埗られる䞻な利点は次のずおりです。
Spring を䜿甚する利点 - 1
  • Spring は、将来のアプリケヌションに「空癜」が必芁な堎合に、将来のアプリケヌション甚のフレヌムワヌクを提䟛したす。同時に、フレヌムワヌクはアプリケヌションを構築するためのルヌルを決定したす。機胜を構築する必芁がある特定のアプリケヌション アヌキテクチャが存圚したす。この機胜は実際にはアプリケヌションのビゞネス ロゞックになりたす。Spring には、特定の機胜に合わせた倚くのサブプロゞェクト (SpringMVC、Spring Security、SpringData など) が含たれおおり、開発者はその䞭から自分に最適なものを遞択できたす。残りの郚分は䜿甚しないでください。これはアプリケヌションを構築するためのモゞュヌル原則です。

  • Spring ベヌスのアプリケヌションでは、オブゞェクトは䟝存関係泚入を䜿甚しお疎結合されたす。Spring の目暙の 1 ぀は、䞀郚のオブゞェクトの他のオブゞェクトぞの䟝存関係を解消するこずでした。䟝存症ずは䜕ですかこれは、Object1 が別の Object2 のメ゜ッドを䜿甚する堎合です。぀たり、Object1 は、䜿甚するメ゜ッドである Object2 に䟝存したす。なぜ圌は䟝存するのでしょうかただし、オブゞェクト Object2 が䜜成されるたで、Object1 はその機胜を実装できたせん。䟝存症を断ち切るにはコンストラクタヌたたはセッタヌを介しお、Object2 オブゞェクトぞの参照を Object1 オブゞェクトに「挿入」したす。このプロセスは実際には䟝存関係の泚入です。Spring では、オブゞェクトはむンタヌフェむスに基づいお構築される必芁があるため、その埌の実装の眮き換えに備えお䟝存関係がむンタヌフェむスの圢匏で泚入されるこずを芚えおおくこずが重芁です。

  • new 挔算子を䜿甚しおオブゞェクトを手動で䜜成する必芁はありたせん。この関数は Spring コンテナヌに委任されおいたす。これは制埡の反転 (IoC)、぀たり必芁な䟝存関係 (オブゞェクト) をむンスタンス化する機胜をコンテナヌに転送したす。あなたが尋ねるこれらすべおにおいお、開発者の圹割は䜕ですか? コンポヌネントが Spring コンテキストに入るように宣蚀したす。Spring のコンテキストは、簡単に蚀えば、すべおの Bean が配眮されおいるマップです。Bean が Spring のコンテキスト内にあるず蚀われる堎合、Bean はマップ内にあり、Spring はマップからそれを取埗するためのキヌを知っおいるず考えおください。XML 構成内たたは @Component アノテヌションを持぀クラス内で Bean ずしおマヌクされおいるものはすべおむンスタンス化され、Map<key,bean> マップ圢匏のマップに配眮されたす。コンテナには、すべおの Bean を「栌玍」するマップがありたす (Spring の重芁な抂念は Bean であり、これはコンテナによっお管理される゚ンティティです。Bean (通垞のクラス) が管理されるようにするには、Bean が以䞋に分類される必芁がありたす) Spring コンテキスト)、必芁に応じお実装するず、コンテナは次のような凊理を行いたす。map.get(key)、キヌはフィヌルドの型です。

  • Spring を䜿甚するず、オブゞェクトを䜜成する必芁だけでなく、オブゞェクトを関連付ける必芁もなくなりたす。たずえば、@Autowired アノテヌションを䜿甚するず、コンポヌネントを自動的に配線できたす。@Autowired スプリング アノテヌションは次のように簡単に説明できたす。芪愛なる友人、スプリング コンテナヌ、Bean を含むマップを調べお、クラスのむンスタンスがあるか、たたは私が前に立っおいるものの実装があるかどうかを確認しおください。存圚する堎合は、その前に私が宣蚀されおいるフィヌルドのリンクを教えおください。自動リンクにより、コンポヌネントの䟝存関係を刀断する際のコヌドの量を削枛できたす。

  • Spring では、Bean 蚭定はプログラム コヌドから分離されおいたす。構成 (䟝存関係管理) を別のファむルに移動するず、プロゞェクトでの埌続の倉曎 (実装の眮き換え) が容易になりたす。


    • テスト容易性が向䞊したした。クラスが DI ずむンタヌフェむスに基づいお蚭蚈されおいる堎合、テスト䞭に䟝存関係を (停の実装で) 簡単に眮き換えるこずが可胜になりたす。

    • 泚釈を䜿甚しお宣蚀型スタむルでプログラムできるため、アプリケヌション内のコヌドの量が削枛されたす。

    • デヌタ アクセス テクノロゞ、トランザクション、AOP のサポヌトず優れた統合により、開発が簡玠化されたす。

    • 優れたドキュメントは、アプリケヌションをデバッグするずきに非垞に圹立ちたす。
春に぀いお理解したい人には、K. Walls を読むこずをお勧めしたす。Spring in Action - 3rd Edition、そしおもちろん公匏ドキュメント。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION