您的位置:首页 > 编程语言 > Java开发

Spring核心组件-IOC的介绍

2016-07-13 19:22 651 查看
Spring核心组件包括IOC和AOP,我们主要学习的就是这俩个模块

(1)、Spring Core(IOC) 核心容器,提供组件的创建、装备、销毁

(2)、Spring Context Spring上下文,是一个接口ApplicationContext(继承自BeanFactory接口)的实现

(3)、Spring Web容器,web应用上下文,是webApplicationContext接口的实现

(4)、Spring DAO容器,是SpringDAO 支持模块,是为了简化DAO的使用

(5)、Spring ORM

(6)、Spring AOP ,对AOP编程支持的模块

(7)、Spring MVC,类似于Spring表示层的一个框架

我今天学习的就是IOC模块~

现在简单的来介绍一下IOC~

IOC:Inversion of Control 控制反转

一种说法:对象之间的依赖关系,由容器在运行时依据配置文件动态的建立

另一种说法:对象的控制器转移了,转到外部容器了,避免了代码的纠缠,代码更容易被维护,模板之间的耦合性降低,容易测试

IoC 控制反转意味着将你设计好的类交给容器去控制,而不是在类的内部进行控制,即控制权由应用代码中转到了外部容器

IOC包括两部分内容

DI:Dependency Injection依赖注入,组件不做定位查询,只提供相应方法,由容器创建对象,并调用相应方法设置所需对象需要的组件

DL:Dependency Loopup依赖查找,容器创建对象并提供回调接口和上下文环境给组件,需要时通过接口从容器中查找对象

依赖查找,现在使用不太多。(EJB使用的更多,将对象创建好后,放到容器中。)

IOC解决:对象谁来创建的问题

DI解决:对象间的关系如何建立的问题。

org.springframework.beans及org.springframework.context包是IOC容器的基础

SpringIOC核心api

1.BeanFactory接口和容器

BeanFactory是Spring中Bean容器,IOC的核心接口,主要用于处理Bean的初始化和配置,建立对象间的依赖关系

定义了如下方法:

Object getBean(String name) //根据指定名称返回一个Bean实例

<T> T getBean(Class<T> requiredType)
//返回一个与给定Class唯一匹配的Bean实例

<T> T getBean(String name, Class<T> requiredType)

Object getBean(String name, Object... args)

Class<?> getType(String name)       //得到名称为name的Bean的Class对象

boolean isPrototype(String name)   //判断名称为name的Bean是否是原型,
即是否总是返回一个新实例
boolean isSingleton(String name)   //判断名称为name的Bean是否是单例

boolean containsBean(String name)  //判断是否包含给定名称的Bean实例

boolean isTypeMatch(String name, Class<?> targetType)
//判断名称为name的Bean实例是否为targetType类型
String[] getAliases(String name)  //如果名称为name的Bean有别名返回


通过getBean方法便可以得到相应的类实例,但是最好永远不调用,而使用注入,避免对Spring API的依赖

在Spring中,同一Spring容器中的bean默认情况下是Singleton(单例),将在bean的作用域介绍.

2.ApplicationContext接口

该接口继承于BeanFactory,增强了BeanFactory,提供了事务处理AOP,国际化,事件传递

所以在代码中我们一般会使用ApplicationContext接口,以及这个接口相应的实现类来创建spring的容器对象。

例如:

String path = "com/briup/ioc/set/set.xml";
ApplicationContext container = new ClassPathXmlApplicationContext(path);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ioc aop spring