コントロール(IOC、制御の反転)、の反転がコンセプト、アイデアです。従来、プログラムの世代を指す
直接権利コンテナを呼び出す操作オブジェクトへのコード、およびアセンブリの管理オブジェクトは、コンテナによって達成されます。
制御の逆転は、容器の外側に反転されたプログラムコード自体からの制御の対象に転送されます。
コンテナ、属性の割り当てにより、オブジェクトの作成を達成依存関係の管理。
IOCは、さまざまな方法を達成することであるという考え、概念です。現在人気の実装はに依存している
の注射。広く使われています。
依存:クラスA ClassBのクラスは、インスタンスが含まれ、この方法は、すなわちクラスA、クラスA ClassBの完了を呼び出し
ClassBのの依存関係を持っています。
IOCの実装:
➢依存ルックアップ:DL(依存ルックアップ)、及び容器は、コールバックインターフェースアセンブリにコンテキストを提供します。
➢依存性注入:DI(依存性注入)しないプログラムコードの所在照会、容器自体によって作業が
完了する。
DI DIは、コールがコードで作成することはせず、別のオブジェクトの支援を必要とする場合、実行中のプログラムを指す
発信者である、むしろ外側容器に、外側容器によって作成されたプログラムに渡されます。
ほとんど要件と呼び出し先Springの依存性注入の呼び出し側は、完全にオブジェクト間の依存関係をサポート
管理を。
IoCを達成するために、Springフレームワークの依存性注入(DI)。
春は、超大型コンテナ植物で、作成するすべてのJavaオブジェクトを管理する責任があり、これらのJavaオブジェクトが言われている
ビーンに。Springコンテナは、コンテナ豆、春の使用「依存性の注入」アプローチ間の依存関係を管理
ビーン間の依存関係を管理するし。IoCを使用して、オブジェクト間のデカップリングを実現。
2.1開発ツール準備
開発ツール:idea2017上記の
依存関係の管理:達人
マシンはMavenのリポジトリを設定する必要があります設定します。
2.2春の最初の
例:01-primay
Mavenを作成2.2.1
クイックスタート・テンプレート
2.2.2導入Mavenの依存のpom.xml
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.16.RELEASE</version> </dependency> <!--插件--> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins>
2.2.3 定义接口与实体类
public interface SomeService { void doSome(); } public class SomeServiceImpl implements SomeService { public SomeServiceImpl() { super(); System.out.println("SomeServiceImpl无参数构造方法"); } @Override public void doSome() { System.out.println("====业务方法doSome()==="); } }
2.2.4 创建 Spring
在 src/main/resources/目录现创建一个 xml 文件,文件名可以随意,但 Spring 建议的名
称为 applicationContext.xml。
spring 配置中需要加入约束文件才能正常使用,约束文件是 xsd 扩展名。
使用约束文件的语法在:xsd-configuration.html。这个 xsd-configuration.html 文件位置是
在%SPRING_HOME%\docs\spring-framework-reference\html\xsd-configuration.html
SPRING_HOME:是从 spring 官网下载的资源 spring-framework-4.3.16.RELEASE-dist.zip 解
压后的目录。
注意,Spring 配置文件中使用的约束文件为 xsd 文件。若 Eclipse 中没有自动提示功能,
则需要将约束要查找的域名地址指向本地的 xsd 文件。相应的 xsd 文件在 Spring 框架解压目
录下的 schema 目录的相应子目录中。
约束文件:xsd(xml schema definition) xml 文档结构定义。
作用:验证 xml 文档的逻辑结构是否正确。
1.定义一个 xml 文档中都有什么元素
2.定义一个 xml 文档中都有什么属性
3.定义一个 xml 文档中元素可以有哪些子元素,以及元素的顺序。
4.定义一个 xml 文档中元素和属性的数据类型。
这里需要的是 spring-beans.xsd 约束文件,故需要在 beans 子目录中查找相应版本
的约束文件。
<bean />:用于定义一个实例对象。一个实例对应一个 bean 元素。
id:该属性是 Bean 实例的唯一标识,程序通过 id 属性访问 Bean,Bean 与 Bean 间的依
赖关系也是通过 id 属性关联的。
2.2.5 定义测试类
@Test public void test01(){ System.out.println( "Hello Spring!" ); //定义Spring的配置文件, 配置文件是在类路径的根目录之下 String config = "applicationContext.xml"; //创建Spring的容器对象.根据Spring配置文件的位置,使用接口的不同实现类 //如果Spring的配置文件是在类路径(classpath),使用ClassPathXmlApplicationContext ApplicationContext ctx = new ClassPathXmlApplicationContext(config); //从容器中获取对象 使用getBean("<bean>的id") SomeService service = (SomeService) ctx.getBean("someService"); //调用业务方法 service.doSome(); }
2.2.6 使用 spring 创建 非自定义类对象
spring 配置文件加入 java.util.Date 定义:
<bean id="myDate" class="java.util.Date" />
MyTest 测试类中:
调用 getBean(“myDate”); 获取日期类对象。
2.2.7 容器接口和实现类
ApplicationContext 接口 (容器)
ApplicationContext 用于加载 Spring 的配置文件,在程序中充当“容器”的角色。其实现
类有两个。