spring--IOC容器
2016-07-03 22:11
344 查看
IOC:Inversion of Control,即控制反转:本来是由应用程序控制对象之间的依赖关系,现在交给了容器管理(spring IOC容器),而spring IOC容器通过DI(即依赖注入)的方式来实现管理和控制这些依赖关系。
应用程序控制对象之间的依赖关系时,要用一个对象,要先创建一个实例,即new 一个对象,而IOC容器控制这些依赖关系时,不需要直接在代码中与对象连接,而是在配置文件中描述要使用的对象,容器负责键这些对象联系起来。
在spring中,最基本的IOC容器接口为BeanFactory,这个接口为具体的IOC容器的实现做了最基本的功能规定:
public class BeanFactory{
//对FactoryBean的转义定义,因为如果使用bean的名字检索FactoryBean得到的对象是工厂生成的对象
//如果需要得到工厂本身,需要转义
String FACTORY_BEAN_PREFIX = “&”;
//根据bean的名字,在IOC容器里得到bean实例
Object getBean(String name)throws BeansException;
//根据bean的名字和CLass类型来得到bean实例
Object getBean(String name,Class requredType)throws BeansException;
//对bean的检索,检索IOC容器中是否有此名字的BEAN
boolean containsBean(String name);
//根据bean名字获取实例,并判断是否是单例
boolean isSingleton(String name)throws NoSuchBeanDefinitionException;
//根据bean名字获取bean实例的CLASS类型
Class getType(String name) throws NoSuchBeanDefinitionException;
//根据bean名字获取bean别名
String[] getAliases(String name);
}
在BeanFactory里只是对IOC容器的基本行为做了定义,具体要看其实现,另外IOC容器实现对依赖对象管理是通过依赖注入DI实现的。
应用程序控制对象之间的依赖关系时,要用一个对象,要先创建一个实例,即new 一个对象,而IOC容器控制这些依赖关系时,不需要直接在代码中与对象连接,而是在配置文件中描述要使用的对象,容器负责键这些对象联系起来。
在spring中,最基本的IOC容器接口为BeanFactory,这个接口为具体的IOC容器的实现做了最基本的功能规定:
public class BeanFactory{
//对FactoryBean的转义定义,因为如果使用bean的名字检索FactoryBean得到的对象是工厂生成的对象
//如果需要得到工厂本身,需要转义
String FACTORY_BEAN_PREFIX = “&”;
//根据bean的名字,在IOC容器里得到bean实例
Object getBean(String name)throws BeansException;
//根据bean的名字和CLass类型来得到bean实例
Object getBean(String name,Class requredType)throws BeansException;
//对bean的检索,检索IOC容器中是否有此名字的BEAN
boolean containsBean(String name);
//根据bean名字获取实例,并判断是否是单例
boolean isSingleton(String name)throws NoSuchBeanDefinitionException;
//根据bean名字获取bean实例的CLASS类型
Class getType(String name) throws NoSuchBeanDefinitionException;
//根据bean名字获取bean别名
String[] getAliases(String name);
}
在BeanFactory里只是对IOC容器的基本行为做了定义,具体要看其实现,另外IOC容器实现对依赖对象管理是通过依赖注入DI实现的。
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- Spring整合WebSocket应用示例(上)
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- 监听器获取Spring配置文件的方法
- Java利用Sping框架编写RPC远程过程调用服务的教程
- springmvc 发送ajax出现中文乱码的解决方法汇总
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- 详解Java的MyBatis框架和Spring框架的整合运用
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao