IoC 是一种设计模式。将实例化对象的控制权,由手动的 new 变成了 Spring 框架通过反射机制实例化。
对象的实例化由 Spring 框架加载实现,放到 Spring 的容器中管理,避免了我们手动的 new 对象,有需要用到对象实例依赖,直接向 Spring 容器要即可,而一旦涉及到对象的实例修改,那么 只需更改 Spring 加载实例化对象的地方,程序代码无需改动,降低了耦合,提升了扩展性。
BeanFactory 才是 Spring 容器中的顶层接口。 ApplicationContext 是它的子接口。
简而言之,BeanFactory 提供了配置框架和基本功能,并在 ApplicationContext 中增加了更多针对企业的功能。
BeanFactory 和 ApplicationContext 的区别: 创建对象的时间点不一样。
ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。
BeanFactory:什么时候使用,什么时候创建对象。
Spring 的容器是通过一个接口 org.springframework.context.ApplicationContext 表示,并负责实例化,配置和组装 Bean 对象。容器通过读取 xml 文件中的配置信息来获取关于实例化对象,配置属性等命令。
而 ApplicationContext 只是一个接口,我们通常创建 ClassPathXmlApplicationContext 的实例或者 FileSystemXmlApplicationContext 的实例。前者是从类路径中获取上下文定义文件,后者是从文件系统或 URL 中获取上下文定义文件 。
IoC 容器的使用实例
容器的初始化必须先配置 xml 文件,代码回顾如下:
<bean id="user" class="com.wyan.entity.User" ></beans>
加载配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
调用方法
context.getBean("user")
版权声明
本文仅代表作者观点,不代表xx立场。
本文系作者授权xxx发表,未经许可,不得转载。
发表评论