スプリング(a)は開口

1、春のはじめに

初期のJ2EEの時代では、非常に退屈なアプリケーションを開発し、彼らは私たちは多くの時間を費やす必要があるので、Webサービスを提供し、そのような他のデータベースへのアクセスなどのオブジェクトを作成し、管理するために話すことはありません。このJ2EEフレームワークは、非効率的な現状を肥大化した上で、その時点でのオーストラリアという名前のロッド・ジョンソンは、リードを奪った様々な疑問、によって定めロッド書き込みブック・ジョンソン「1つのJ2EEの設計と開発に関する専門家1」、後コンセプトと試作品の一部は、春のフレームワークを作成しました。(PS:ロッド・ジョンソンは、実際に音楽の医師である???)

春のフレームワークは、主にエンタープライズアプリケーション開発と創造の複雑さに対処するために、軽量なオープンソースのJavaフレームワークです。そのコアは、私たちは、オブジェクトとその依存関係を管理するためですが、また、一般的なロギング、パフォーマンス統計、セキュリティ制御、例外処理アスペクト指向の機能として提供するだけでなく、そのようなデータベースアクセスフレームワークのHibernateなどのサードパーティのフレームワーク、多数を統合し、 MyBatisのは、WebサービスフレームワークStrutsは、その上のタスクスケジューリング、Redisのキャッシュ、MQおよびだけでなく、自分自身のSpringMVCを提供しています。

春Frameworkはまた、J2EEアプリケーション層のためのソリューションに取り組んでプレゼンテーション層では、ビジネス層と永続化層に対応する機能をフレームワークに統合され、そのエンタープライズアプリケーション開発春「ワンストップ」ソリューション言うことができます。

しかし、実際には反対はJ2EEと春ではない、春には、それぞれのJ2EE仕様を統合するJ2EEのサプリメントは、次のとおりです。

春は彼らの生態系の漸進的な実現に、石の丘を「借り」と言うことができます。

2、春のフレームワークの進化

2002年10月にリリースさ春の最初のバージョンは、10年持つよう春コミュニティサポートFrameworkなどのコア機能のすべての側面が急速に発展している、各マイルストーンリリースがもたらす春の重要な機能をリコールする必要があります。

  • 春0.9:これは、への最初のパブリックリリースのためのフレームワークである「オンワンワンエキスパート:J2EEの設計と開発」の本に基づいて、Bean構成、AOPのサポート、JDBC抽象化フレームワーク、抽象トランザクションをサポートするための基礎を提供しますように。このバージョンは、公式参照文書を持っていませんが、ソースコードやSourceForgeで利用できるドキュメントを見つけることができます。
  • 春の1.x:これが公開され、公式参照文書の最初のバージョンです。これは、7つのモジュールから構成されています。
    • 春のコア、Springコンテキスト、春のDAO、春ORM、春AOP、春のWeb、春のWeb MVC
  • 春2.xでは:このバージョンでは、春のWebへの途中、春のWeb MVCへの6つのモジュール、Springコンテキスト春のコアモジュールで構成されています。
    • @AspectJのアノテーションサポートAOP開発。
    • 非同期JMSメッセージドリブンPOJOのフルサポート。
    • タスクのスケジューリングはのTaskExecutorの抽象を導入しました。
    • 必要と@AspectJ @特にトランザクション@のJava 5のアノテーションのサポート、、。
  • 春2.5.X:このバージョンでは、次の機能が含まれています。
    • JSR-250のアノテーションのための新しい@Autowiredコメントとサポート(リソース@ PostConstructと@PreDestroy @)の。
    • 新規登録ビーン関連のノート:@Component、リポジトリ@、サービスと@Controller @。
    • Spring MVCの@Controllerノートに加えて、また、アノテーションによってリクエスト処理の設定をサポートするために、@ RequestMapping、@ RequestParamと@ModelAttributeノートを追加しました。
  • 春3.0.xの:これは、Javaの春5の最初のバージョンに基づいており、Java5は、ジェネリック、可変パラメータとしての機能を利用するために設計されています。
    • Java5のサポートは、このようなジェネリック、可変パラメータを備えています。
    • RESTのフルサポート。
    • 新しいMVCのXML名前空間と、そのような中@CookieValueや@RequessHeaders SpringMVCなど他の注釈、。
    • 機能強化およびJSR-303(ビーンバリデーション)のサポートを確認してください。
  • 春3.2.xの:このバージョンでは、次の機能が含まれています。
    • 非同期サーブレット3.0に基づいてサポート要求処理。
    • 新しいSpringMVCコメント@ControllerAdvice。
  • 春の4.x:これは春の重要なリリースである、また、完全にJavaの8をサポートする最初のバージョンです。あなたはまだ古いバージョンが、非推奨クラスとメソッドを使用することもできますが、削除されました。
    • HibernateはORM 5.0のフルサポート。
    • JMSとWebの改善。
    • 改善のWebSocketメッセージ。
    • 基礎となるオブジェクトの春のエージェントへのアクセスを可能にするAopTestUtilsユーティリティクラスを導入しました。
  • 春の5.x:これはメジャーリリースで、全体のフレームワークは、Java 8に基づいています。
    • パフォーマンスの大幅な改善が得られ、Javaの8のパワーをフルに活用してください。
    • サポートJMS2.0 +およびJPA 2.1以上。
    • 反応式に基づいて構築されたSpringMVCを交換するためのプロジェクトです春のWebフラックスを、導入され、それは完全に非同期および非ブロックです。
    • Webおよびコアモジュールは、反応性のプログラミング・モデルに適しています。

3、春の全体的なアーキテクチャ

春に5.0倍、約モジュール20は、図示のように:

画像

これらのモジュールは、次のセクションにまとめられています。

コアコンテナ

コアコンテナ(コア容器)4つのモジュールコア、豆、コンテキストおよび表現言語を含みます。

  • コア金型は、主にコアスプリングフレームワークを含む必要があり、他の構成要素の基本的なコアです。動的プロキシ関連ASM、CGLIB、及び様々なUtilsの、のStringUtils、CollectionUtils。
  • 豆モジュールは、アクセスプロファイルを含む、のIoC / DIならびにクラスに関連付けられたすべての操作をBeanを作成して管理します。以下のような:たBeanFactory、BeanDefinitionsなど。
  • コンテキストモジュールは豆の特性を継承コア豆モジュールに基づいて、上に構築され、スプリングは、コアの拡張の数を提供します。ApplicationContextのインタフェースコンテキストは、コアモジュールです。
  • 式言語のモジュールは、強力な式言語を提供します。EL式は、JSP古代に使用されています。

データアクセス/統合

JDBC、ORM、OXM、JMSおよびトランザクションモジュールを備えたデータアクセス/統合。

  • JDBCモジュールは、すべてのデータベース・ベンダーを適応させるために使用されるJDBC抽象化レイヤを提供します。このモジュールは、JDBCパッケージのすべてのクラスのSpringのデータ・アクセスが含まれています。
  • ORM 模块提供了几种常用的对象关系映射框架,如 JPA 、Hibernate 、iBatis 。
  • OXM 模块提供了一个对ObjecνXML 映射实现的抽象层。
  • JMS (Java Messaging Service)模块主要包含一些生产和消费消息的特性。
  • Transaction 模块支持编程和声明性的事务管理。

Web

Web 层包含了Web 、Servlet 、WebSocket、Porlet 模块。

  • Web 模块:提供了基础的面向Web 的集成特性。例如,多文件上传。
  • Servlet 模块:该模块包含Spring 的model-view-controller (MVC)实现。
  • WebSocket 模块:提供 WebSocket 协议支持。
  • Porlet 模块:提供了用于 Portlet 环境和 Servlet 模块的 MVC 的实现

AOP

AOP 模块提供了一个符合 AOP 联盟标准的面向切面编程实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低它们之间的耦合性。

  • Aspects 模块提供了对AspectJ 的集成支持。
  • Instrumentation 模块提供了class instrumentation 支持和classloader 实现,使得可以在特定的应用服务器上使用。
  • Messaging 模块:对消息通信集成提供了广泛的支持,及提供简化 JMS API 的使用到异步接收消息的完整基础结构。

Test

Test 模块支持使用 JUnit 和TestNG 对 Spring 组件进行测试。

最后

Spring 背景及架构就介绍到这,接下来将对 Spring 核心容器、AOP、事务这三部分内容展开一系列的讨论。

注:该系列文章使用的 Spring 版本是 5.0+。



以上就是本章内容,如果文章中有错误或者需要补充的请及时提出,本人感激不尽。

参考:

「春のソース深度分析(第2版)」
「Spring5高度なプログラミング」
「SpringBootプログラミングのアイデア」
https://baike.baidu.com/item/spring/85061#2
https://docs.spring.io/spring/ドキュメント/ 5.2.2.RELEASE /春-framework-参照/ overview.htmlに#概要

おすすめ

転載: www.cnblogs.com/loongk/p/12194690.html