知识大全 Spring 控制反转(IoC)容器
Posted 知
篇首语:知道如何活用知识最重要,知道知识的来龙去脉次之,拥有知识再次之。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring 控制反转(IoC)容器相关的知识,希望对你有一定的参考价值。
Spring 控制反转(IoC)容器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
(二)个人整理Spring系列 控制反转(IoC)容器
一 什么是控制反转模式? 不创建对象 但是描述创建它们的方式 在代码中不直接与对象和服务连接 但在配置文件中描述哪一个组件需要哪一项服务 容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起
二 Spring 中的 Bean? 由Spring IoC容器所管理的对象被称之为bean bean就是由Spring容器初始化 装配及被管理的对象 bean定义以及bean相互间的依赖关系将通过配置元数据来描述 三 什么是Spring IoC容器? springframework beans包是Spring IoC容器的基础 springframework beans factory BeanFactory接口是Spring IoC容器的实际代表者 IoC容器负责容纳此前所描述的bean 并对bean进行管理 BeanFactory 接口 BeanFactory是IoC容器的核心接口 是工厂设计模式的实现 bean 工厂的概念是 Spring 作为 IOC 容器的基础 它的职责包括 实例化 检索 配置应用程序中的对象及管理对象之间的关系 BeanFactory 支持两个对象模型 单态模型 提供了具有特定名称的对象的共享实例 可以在查询时对其进行检索 Singleton 是默认的也是最常用的对象模型 对于无状态服务对象很理想 原型模型 确保每次检索都会创建单独的对象 在每个用户都需要自己的对象时 原型模型最适合 ApplicationContext接口 ntext ApplicationContext由BeanFactory接口派生扩展而来 因而提供了BeanFactory所有的功能 在构建J EE应用时 使用ApplicationContext将是更好的选择 context包还提供了以下的功能 MessageSource 提供国际化的消息访问 资源访问 如URL和文件 事件传播 实现了ApplicationListener接口的bean 载入多个(有继承关系)上下文
配置元数据 Spring IoC容器将读取配置元数据 并通过它对应用中各个对象进行实例化 配置以及组装 基于XML的元数据是最常用到的配置元数据格式 然而 它并不是唯一的描述格式 Spring IoC容器在这一点上是完全开放的 当使用基于XML的配置元数据时 将在顶层的<beans/>元素中配置一个或多个<bean/>元素 bean定义与应用程序中实际使用的对象一一对应 通常情况下bean的定义包括 服务层对象 数据访问层对象(DAO) 类似Struts Action的表示层对象 Hibernate SessionFactory对象 JMS Queue对象等等
四 实例化IoC容器(基于XML的元数据) 通过ClassPathXmlApplicationContext类加载一个或多个XML文档来实例化BeanFactory接口的实现扩展ApplicationContext类 要从 BeanFactory 检索 bean 只需调用 getBean() 方法 传入将要检索的 bean 的名称即可
五 一个简单Spring 示例
建立Java项目 MySpring
导入Spring框架
创建JavaBean HelloBean 编写testHello方法
HelloBean java
view plaincopy to clipboardprint? <FONT size= > package qu bean;
public class HelloBean
public String sayHello(String name)
return String format( % $s : Hello World! name);
</FONT>
package qu bean;
public class HelloBean
public String sayHello(String name)
return String format( % $s : Hello World! name);
配置applicationContext xml 将HelloBean注入Spring容器
applicationContext xml
view plaincopy to clipboardprint? <FONT size= > <?xml version= encoding= UTF ?>
<beans
xmlns=
xmlns:xsi= instance
xsi:schemaLocation= beans xsd >
<! 方法
<import resource= OtherXML/helloBean xml />
>
<! 方法 >
<bean class= qu bean HelloBean id= helloBean >
</bean>
</beans></FONT>
<?xml version= encoding= UTF ?>
<beans
xmlns=
xmlns:xsi= instance
xsi:schemaLocation= beans xsd >
<! 方法
<import resource= OtherXML/helloBean xml />
>
<! 方法 >
<bean class= qu bean HelloBean id= helloBean >
</bean>
</beans>view plaincopy to clipboardprint? <FONT size= ><STRONG><U>helloBean xml</U></STRONG></FONT>
helloBean xmlview plaincopy to clipboardprint? <?xml version= encoding= UTF ?>
<beans
xmlns=
xmlns:xsi= instance
xsi:schemaLocation= beans xsd >
<bean class= qu bean HelloBean id= helloBean >
</bean>
</beans>
<?xml version= encoding= UTF ?>
<beans
xmlns=
xmlns:xsi= instance
xsi:schemaLocation= beans xsd >
<bean class= qu bean HelloBean id= helloBean >
</bean>
</beans>view plaincopy to clipboardprint? <FONT size= ></FONT>
导入Junit 测试
编写测试类TestHello 重写setUp方法实例化容器 编写testHello方法测试HelloBean的hello方法
view plaincopy to clipboardprint? <FONT size= > TestHello java</FONT>
TestHello javaview plaincopy to clipboardprint? <FONT size= >
package qu test;
import ntext ApplicationContext;
import ntext support ClassPathXmlApplicationContext;
import qu bean HelloBean;
import junit framework TestCase;
public class TestHello extends TestCase
private ApplicationContext ctx;
private HelloBean hello;
protected void setUp() throws Exception
super setUp();
this ctx = new ClassPathXmlApplicationContext(
new String[] ApplicationContext xml OtherXML/helloBean xml );
this hello = (HelloBean) this ctx getBean( helloBean );
public void testSayHello()
assertEquals( Java : Hello World! this hello sayHello( Java ));
cha138/Article/program/Java/ky/201311/27933
相关参考
知识大全 轻量级IoC容器来扩展ANT享受SPRING(图)
轻量级IoC容器来扩展ANT享受SPRING(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 使用SpringtUtil获取Spring IoC容器中的Bean
使用SpringtUtil获取SpringIoC容器中的Bean 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
在Spring中IOC容器的重要地位我们就不多说了对于Spring的使用者而言IOC容器实际上是什么呢?我们可以说BeanFactory就是我们看到的IoC容器当然了Spring为我们准备了许多种
Spring依赖其IOC特征轻松的管理著一堆非常有价值的bean这些bean在spring容器中的依赖关系都已注入好所以相互调用非常方便 但既然是有价值的bean
Spring中IoC的入门实例详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Spring的
知识大全 Spring的IoC学习笔记之BeanFactoryPostProcessor
Spring的IoC学习笔记之BeanFactoryPostProcessor 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,
SpringIOC配置与应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
spring,ioc模式与ejb3的SLSB实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 直接召唤系与IoC fashion使用Spring
直接召唤系与IoCfashion使用Spring 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
用代码学习Spring:IoC、AOP 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!