Spring(一)——IOC和DI的简单理解
2020-01-13 16:01:38来源:博客园 阅读 ()
Spring(一)——IOC和DI的简单理解
Spring是一个IOC(DI)和AOP容器框架,并且是开源的。
1.IOC和DI
比较官方的说法:
•IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式。
•DI(Dependency Injection) — IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如: setter 方法)接受来自如容器的资源注入. 相对于 IOC 而言,这种表述更直接。
我的理解:
-
IOC:控制反转,反转资源获取的方向。 只是一种设计思想,意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
public class HelloWorld { private String name; public void setName(String name) { this.name = name; } public void hello(){ System.out.println("hello: " + this.name); } } // 传统 // 1.创建一个HelloWorld对象 HelloWorld helloWorld = new HelloWorld(); // 2.对象进行赋值 helloWorld.setName("张三"); // 3.调用方法 helloWorld.hello(); // Spring // 1.创建Spring的IOC容器对象 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); // 2.从IOC实例中获取Bean实例 HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld", HelloWorld.class); // 3.调用方法 helloWorld.hello();
-
DI:依赖注入,依赖用容器把资源注入
2.IOC 容器 BeanFactory & ApplicationContext 概述
-
ApplicationContext代表IOC容器,是一个接口,也可以使用BeanFactory来创建IOC容器,不过常用ApplicationContext。
-
ApplicationContext的主要实现类:
-
ClassPathXmlApplicationContext:从类路径(src)下加载配置文件,也可以自己指定,但需要全类名
-
FileSystemXmlApplicationContext:从文件系统中加载配置文件
-
ConfigurableApplicationContext 扩展于 ApplicationContext,新增加两个主要方法:refresh() 和 close(), 让 ApplicationContext 具有启动、刷新和关闭上下文的能力(这个先了解,后面再学)
-
ApplicationContext在初始化上下文时就实例化所有单例的Bean
-
-
ApplicationContext的方法
-
getBean():从IOC容器中获取Bean,该方法是父接口(BeanFactory)的方法
-
是一个重载方法,可由如下创建
-
不推荐使用该方法,要是有多个相同类型的Bean,就不知道要获取哪一个实例
-
-
原文链接:https://www.cnblogs.com/flunggg/p/12184676.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:使用IDEA搭建SSM,小白教程
下一篇:dubbo的启动时检查
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash