Spring思维导图,让Spring不再难懂(ioc篇)
Spring思维导图,让Spring不再难懂(ioc篇)
java思维导图 发表于6个月前
Spring思维导图,让Spring不再难懂(ioc篇)
  1. 发表于 6个月前
  2. 阅读 14816
  3. 收藏 1060
  4. 点赞 29
  5. 评论 29
腾讯云 学生专属云服务套餐 10元起购>>>   
写在前面
写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。 就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。 Spring知识细节.png
控制反转
Spring ioc简介.png
spring ioc容器
在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能。 Spring 整体结构图.jpg 如果说在三个核心中再选出一个核心,那就非Bean莫属了。可以说,Spring就是面向Bean的编程,Bean在Spring中才是真正的主角。 Spring为何如此流行?你会发现Spring解决了一个非常关键的问题,它可以让你对对象之间的关系转而用配置文件来管理,或者注解,也就是它的依赖注入机制。而这个注入关系在一个叫Ioc的容器中管理。Ioc容器就是被Bean包裹的对象。Spring正是通过把对象包装在Bean中从而达到管理这些对象及做一些列额外操作的目的。 ioc容器.png spring ioc初始化.png spring ioc容器工作原理.jpg
核心组件协同工作
三大核心组件.png
BeanFactory与ApplacationContext的区别
IOC中最核心的接口是Beanfactory提供IOC的高级服务,而ApplicationContext是建立在BeanFactory基础之上提供抽象的面向应用的服务。 BeanFactory 与ApplacationContext.png
3种注入方式
在Spring框架中,依赖注入(DI)的设计模式是用来定义对象彼此间的依赖。使用xml配置bean的情况下,它主要有两种类型:
  1. Setter方法注入
  2. 构造器注入
当然,有了注解之后,使用注解的方式更加方便快捷。即自动装配功能实现属性自动注入(@autowire)。 写到这里,让我想起了最近在牛客网上看的一道选择题了: 下面有关spring的依赖注入,说法错误的是? A、依赖注入通常有如下两种:设置注入和构造注入: B、构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入 C、当设值注入与构造注入同时存在时,先执行构造注入,再执行设值注入 D、设值注入是指IoC容器使用属性的setter方法来注入被依赖的实例。这种注入方式比较简单、直观 牛客网给出的答案是选C,不过网友们好像对答案有不同的意见哈。查看网友评论及答案
原理解析
Spring的代码还真是不好读,分得太细了,文字也是难以描述出来,看了别人有关的博客,贴了好多代码,画了好多ER图来描述关键接口或类之间的关系。这么一篇这么长文章下来,大家也未必会认真读代码,看ER图,干脆也不跟风了。就贴了一点在我看来特关键的代码,嘿嘿。 ######context的初始化过程 当运行ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 构造方法ClassPathXmlApplicationContext(String configLocation)调用了this(new String[] {configLocation}, true, null);, 该构造方法具体代码如下。 ClassPathXmlApplicationContext构造方法.jpg refresh()方法.jpg ######从时序图来看启动上述初始化 容器初始化时序图.jpg
写在最后
下篇文章将会写Spring mvc的内容,同样以思维导图的方式编写。可视化学习,让java不再难懂。 最后的最后,欢迎关注我的微信公众号java-mindmap,下载源文件,以及更多java思维导图与项目资料供你学习,每三到四天会更新一篇,带你走进记忆脑图的世界。 关注公众号并回复“思维导图”立即下载源xmind导图。 扫一扫关注java-mindmap公众号.jpg
上篇文章阅读
  1. Spring思维导图,让spring不再难懂(一)
  1. 打赏
  2. 点赞
  3. 收藏
  4. 分享
共有 人打赏支持
java思维导图
粉丝 1482
博文 18
码字总数 17875
评论 (29)
chelze
mark
java思维导图
高清思维导图:https://pan.baidu.com/s/1hsHu53e
卜木
该加一个点击图片放大效果
l_xq
mark
LZW天空之城
大兄弟,微信已关注,有关于和线程以及kafka相关的资料或者视频吗?
三石头123
带个好
三石头123
的方法
小王来了
带刀的麦兜
明明是可以用体验更好的WEB发布技术博客 偏偏要用体验差到不行的公众号 用了公众号还偏偏在文章里放了很多链接 不知道公众号打开的页面链接不能点的? 不知道手机下图需要流量的? 在手机上下了高清也需要放大看好么 要总体看还是要传到电脑好么
java思维导图

引用来自“带刀的麦兜”的评论

明明是可以用体验更好的WEB发布技术博客 偏偏要用体验差到不行的公众号 用了公众号还偏偏在文章里放了很多链接 不知道公众号打开的页面链接不能点的? 不知道手机下图需要流量的? 在手机上下了高清也需要放大看好么 要总体看还是要传到电脑好么
大神勿喷,利发国际官方网里面我只会放我自己的文章。但公众号我还会转载别人的文章,偶尔会发些有趣的,想怎么发就怎么发,因为公众号是我的地盘。你都在利发国际官方网看了文章还去公众号里面看这篇干嘛咧。我原创文章都是同步的。
returnSky
mark
loki_lan
好好好
慢慢成长

引用来自“带刀的麦兜”的评论

明明是可以用体验更好的WEB发布技术博客 偏偏要用体验差到不行的公众号 用了公众号还偏偏在文章里放了很多链接 不知道公众号打开的页面链接不能点的? 不知道手机下图需要流量的? 在手机上下了高清也需要放大看好么 要总体看还是要传到电脑好么

引用来自“java思维导图”的评论

大神勿喷,利发国际官方网里面我只会放我自己的文章。但公众号我还会转载别人的文章,偶尔会发些有趣的,想怎么发就怎么发,因为公众号是我的地盘。你都在利发国际官方网看了文章还去公众号里面看这篇干嘛咧。我原创文章都是同步的。
有些人可能上班的时候在办公室用电脑看,也有可能在地铁上的时候用手机看,多一些方式多一些选择而已,选择自己舒服的方式就行了,或者,可以不看
带刀的麦兜

引用来自“带刀的麦兜”的评论

明明是可以用体验更好的WEB发布技术博客 偏偏要用体验差到不行的公众号 用了公众号还偏偏在文章里放了很多链接 不知道公众号打开的页面链接不能点的? 不知道手机下图需要流量的? 在手机上下了高清也需要放大看好么 要总体看还是要传到电脑好么

引用来自“java思维导图”的评论

大神勿喷,利发国际官方网里面我只会放我自己的文章。但公众号我还会转载别人的文章,偶尔会发些有趣的,想怎么发就怎么发,因为公众号是我的地盘。你都在利发国际官方网看了文章还去公众号里面看这篇干嘛咧。我原创文章都是同步的。
因为web上的图 都已经挤成一坨了 你这博客主要以图为主 不是蛋疼?
java思维导图

引用来自“带刀的麦兜”的评论

明明是可以用体验更好的WEB发布技术博客 偏偏要用体验差到不行的公众号 用了公众号还偏偏在文章里放了很多链接 不知道公众号打开的页面链接不能点的? 不知道手机下图需要流量的? 在手机上下了高清也需要放大看好么 要总体看还是要传到电脑好么

引用来自“java思维导图”的评论

大神勿喷,利发国际官方网里面我只会放我自己的文章。但公众号我还会转载别人的文章,偶尔会发些有趣的,想怎么发就怎么发,因为公众号是我的地盘。你都在利发国际官方网看了文章还去公众号里面看这篇干嘛咧。我原创文章都是同步的。

引用来自“带刀的麦兜”的评论

因为web上的图 都已经挤成一坨了 你这博客主要以图为主 不是蛋疼?
两个解决方法,浏览器放大到180%,右键新标签打开图片。蛋就舒服了。。。
阿信sxq
代码竟然是图片,不能给好评
gowk
mark
带刀的麦兜

引用来自“带刀的麦兜”的评论

明明是可以用体验更好的WEB发布技术博客 偏偏要用体验差到不行的公众号 用了公众号还偏偏在文章里放了很多链接 不知道公众号打开的页面链接不能点的? 不知道手机下图需要流量的? 在手机上下了高清也需要放大看好么 要总体看还是要传到电脑好么

引用来自“java思维导图”的评论

大神勿喷,利发国际官方网里面我只会放我自己的文章。但公众号我还会转载别人的文章,偶尔会发些有趣的,想怎么发就怎么发,因为公众号是我的地盘。你都在利发国际官方网看了文章还去公众号里面看这篇干嘛咧。我原创文章都是同步的。

引用来自“带刀的麦兜”的评论

因为web上的图 都已经挤成一坨了 你这博客主要以图为主 不是蛋疼?

引用来自“java思维导图”的评论

两个解决方法,浏览器放大到180%,右键新标签打开图片。蛋就舒服了。。。
呵呵 哒
青苗
先攒!上次说好的写一篇文章 让 mybatis-plus 不在难懂,等好久了!!
OSCharles
大赞
  1. 1
  2. 2
  3. 下一页
×
java思维导图
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额:
利发国际官方网