技术总结之SpringIOC
1)SpringIOC核心模拟实现
思路:初始化Spring容器时,从配置文件中读取定义好的Bean的信息,根据配置属性初始化后存入Spring容器中。
当需要某个Bean时,直接从容器中通过id获取。
步骤:
a)创建一个Java工程,需要的依赖包(主要用来解析XML文件)如下图:
b)先模拟Spring在配置文件my-ioc.xml中定义两个简单的bean,内容如下:
c)按照上面的思路来模拟Spring实现我们自己的IOC容器MyIOCContext,实现如下:
public class MyIocContext {
private final Map<String, Object> beanMap = new HashMap<String, Object>();
public MyIocContext(String fileName) {
init(fileName);
}
private void init(String fileName) {
}
public Object getBean(String id) {
return beanMap.get(id);
}
}
其中init的实现如下:
d)测试:
public class MyIocTest {
private MyIocContext ctx = null;
@Before
public void setUp() throws Exception {
ctx = new MyIocContext("my-ioc.xml");
}
@Test
public void testIoc() throws Exception {
Hello hello = (Hello) ctx.getBean("hello");
hello.say("My IOC Context");
}
}
结果为:
至此,IOC容器的核心实现完成。
2)Spring依赖注入方式
a)手动注入
构造器注入。
属性setter注入。
使用Field注入(用于注解方式),如下:
@Autowired:按照类型注入
@Resource:按照名称注入,如果失败再按照类型注入。如果指定了name,则只按照名称注入。
b)自动注入
在XML中配置,<bean id="" class="" autowire="byType" />
转载于:https://www.cnblogs.com/dyllove98/p/4101838.html
技术总结之SpringIOC相关推荐
- 收集的计算机编程电子书目录,仅供日后查阅方便
本人有收集电子书的癖好.每日在网上收集经典的电子书籍,尤其喜欢原版的,看起来舒服.不过总是心血来潮,当时下载后瞅几眼,之后就束之高阁,再也不问津了.很为此苦恼,过后找某本书时也总是不知道在哪,为了查找 ...
- Java实现lucene搜索功能
直接上代码: package com.sand.mpa.sousuo;//--------------------- Change Logs---------------------- //<p ...
- Java开发面经分享:SpringIOC中复杂属性如何“巧妙
private Map<String, Object> maps;private Properties properties; } 下面我们将依次讲解如何给赋值属性赋值.**1.为类属性赋 ...
- java缓存技术选型,重难点整理
Part1 SpringIOC 学习Spring最重要的无非是Spring IOC以及Spring AOP,首先咱们把Spring IOC吃透,以下内容将截图展示. Spring IOC主要学习内容分 ...
- spring api 中文_Spring高级技术梳理
序言 本系列除了SpringData部分, 其余部分全部是基于SpringBoot 2.0以上版本, 更新则更强, 尽量不与主流脱节. 我们不是时代的弄潮儿, 我们只是先进技术的追随者~~~ Spri ...
- SpringIOC概述
什么是SpringIOC 什么是SpringIOC,就是把每一个bean(实体类)与bean(实体了)之间的关系交给第三方容器进行管理. 什么是SpringIOC底层实现原理 1.读取bean的XML ...
- springioc注解版运行效果演示
我们讲一个新的知识,就是手写一下IOC容器,怎么手写一下SpringIOC XML版本,还有手写一下SpringIOC注解的版本,那么相对来说,我们用注解版本的次数可能要多点,很少用到XML版本,XM ...
- Spring4.x(2)--SpringIOC的概念和作用
SpringIOC的概念和作用 一.什么是IOC? Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着 ...
- 数据交换格式与SpringIOC底层实现
课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...
- 手写springIOC、AOP
手写springIOC.AOP 一.核心思想 1.IoC 1.1 什么是IoC? 1.2 IoC解决了什么问题 1.3 IoC和DI的区别 2.AOP 2.1 什么是AOP? 2.2 AOP解决的什么 ...
最新文章
- Apache Spark源码走读之8 -- Spark on Yarn
- Java 语言 集合架构(Set规则集)
- 【渝粤题库】陕西师范大学200701 数字逻辑
- 是未来的风口还是无声的战争,中国的saas平台究竟能不能做起来?
- 活动服务器优化 暂时关闭,服务器优化之关闭不必要的服务
- python怎样填充颜色_python – 使用颜色填充Tkinter画布对象之间的空间
- 实战tkinter图形界面开发_八款常用的 Python GUI 开发框架推荐
- 定时器翻转io口的好处_STM32 定时器输出比较翻转模式
- css基础知识汇总5
- 彻底关闭弹出广告“FF新推荐”
- 系统设计之路:如何设计一个URL短链服务
- 假币问题python
- 山西机电职业技术学院计算机专业,山西机电职业技术学院怎么样?山西机电职业技术学院好吗?(历年分数、专业设置、校园环境、教学实力、名人校友) - 职友集...
- 在Markdown编辑器中输入上标下标
- 重拾Java基础知识:运算符操作
- java 限制输入两位数_Java 控制数字输入、控制输入长度的方法 | 学步园
- 电脑怎么翻译图片中的文字?快速翻译图片文字的方法
- Kubernetes(K8S)一
- 零基础学软件测试怎么样? 完好就业吗
- App测试流程及测试点(个人整理版)
热门文章
- 新书 | Kevin P. Murphy《概率机器学习:进阶》PDF开放下载
- Embedding技术在商业搜索与推荐场景的实践
- 【SIGIR2020】信息检索对话中混合主动性和协同性的分析
- 资源过于硬核,8h删!这波福利....请笑纳~
- 打破校史,发学校首篇Science的博士小姐姐,近日再发Nature!破解百年谜题
- 原来神经网络是一种图?
- 【工大SCIR笔记】AAAI 2020 故事结局预测任务上的区分性句子建模
- 【机器学习】如何处理数据不均衡问题
- 数据分析_金额业务数据知识
- nlp基础—4.搜索引擎中关键技术讲解