春のフレームワーク分析


スプリングフレームワークの3つのコア・コンポーネント:

  • コア
  • 状況

彼らは、骨のアーキテクチャの全体春を構築しました。

春のデザイン

春の同じ役割でのOOPの意義として、Beanオブジェクトは、オブジェクトの概念が全くオブジェクト指向プログラミングではありませんがあります。管理するための設定ファイルを使用代わりに、オブジェクト間の依存関係を春、それは、彼の依存性注入メカニズムです。そして、この関係はIOCコンテナ管理と呼ばれる場所で注入され、IOCのコンテナは、Beanが、Beanによって報告された春の整数オブジェクトは、これらの管理に設置されたオブジェクトは、オブジェクトや目的外の一連の操作を実現するためにラップされます。

IOC

IOC制御反転(制御の反転)を表し、オブジェクト指向プログラミングの1つの設計原理は、コンピュータ・コードとの間の結合の程度を減少させるために使用することができます。

スプリングフレームワークのために、それはスプリングとの関係は、オブジェクトとオブジェクトのライフタイムを制御する責任があります。、オブジェクトコンテナの操作を指示するオブジェクト管理部品アセンブリを達成するために、容器を介して、プログラムコードによって伝統的に右コール。容器の外側にプログラムコード自体から転送された、いわゆる「制御の反転」、コンポーネントオブジェクトの制御の転送は、コンテナは、オブジェクトを作成し、オブジェクト間の依存関係を管理します。

IOCは、システムは、それがオブジェクトに他のオブジェクトを提供する必要が動的に実行されています。この依存性注入(DI)を達成します。

OF

DI-依存性注入、すなわち、「依存性注入」は:実行時のコンポーネント間の依存関係が容器によって決定され、動的に容器アセンブリに依存性を注入画像は述べています。依存性の注入は、ソフトウェアシステムに多くの機能をもたらすために意図されていません。

オブジェクトが他のオブジェクトを呼び出すために、単純である場合は、この作業の目的は完了し、依存関係を注入するために利き春と呼ばれています。ここでの依存性はビーンと容器との間の依存関係を指します。

1
伝統的なプログラムの設計プロセスでは、通常、呼び出し側によって、呼び出し側のインスタンスを作成する際に、役割が他の役割の支援を必要とする場合。しかし、作成は、発信者の仕事は、もはやその制御の反転と呼ばれ、春には、発信者によって行われているではありません。スプリングによって行われる呼び出し先の仕事を作成し、呼び出し側に注入。また、依存性注入を知られています。

IOCとDIとの間の関係

其实它们是同一个概念的不同角度描述,由于控制反转概念比较含糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维护对象关系),所以2004年大师级人物Martin Fowler又给出了一个新的名字:“依赖注入”。相对IoC 而言,“依赖注入”明确描述了“被注入对象依赖IoC容器配置依赖对象”。

核心组件 协同工作

Context 就是一个 Bean 关系的集合,这个关系集合又叫 Ioc 容器。Core 就是发现、建立和维护每个 Bean 之间的关系所需要的一些列的工具。

Bean 组件

Bean 组件在 Spring 的 org.springframework.beans 包下。这个包下的所有类主要解决了三件事:

  • Bean的定义
  • Bean的创建
  • Bean的解析

对 Spring 的使用者来说唯一需要关心的是 Bean 的创建,其余的由 Spring 在内部帮你完成。

Context组件

Context 在 Spring 的 org.springframework.context 包下, Context 组件实际上就是给 Spring 提供一个运行时的环境,用以保存各个对象的状态。

ApplicationContext 是 Context 的顶级父类,他除了能标识一个应用环境的基本信息外,他还继承了五个接口,这五个接口主要是扩展了 Context 的功能。

总体来说 ApplicationContext 必须要完成以下几件事:

  • 标识一个应用环境
  • 利用 BeanFactory 创建 Bean 对象
  • 保存对象关系表
  • 能够捕获各种事件

    Context 作为 Spring 的 Ioc 容器,基本上整合了 Spring 的大部分功能,或者说是大部分功能的基础。

Core组件

Core 组件作为 Spring 的核心组件,他其中包含了很多的关键类,其中一个重要组成部分就是定义了资源的访问方式。把所有资源都抽象成一个接口。

AOP(面向切面编程)

面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用。 这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

一般而言,我们管切入到指定类指定方法的代码片段称为切面,而切入到哪些类、哪些方法则叫切入点。有了AOP,我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时再切入对象中去,从而改变其原有的行为。这样看来,AOP其实只是OOP的补充而已。OOP从横向上区分出一个个的类来,而AOP则从纵向上向对象中加入特定的代码。有了AOP,OOP变得立体了。如果加上时间维度,AOP使OOP由原来的二维变为三维了,由平面变成立体了。从技术上来说,AOP基本上是通过代理机制实现的。

原文:大专栏  Spring 框架分析


おすすめ

転載: www.cnblogs.com/sanxiandoupi/p/11652346.html
おすすめ