Java笔记——看完这个,打通Spring难度系数

栏目: Java · 发布时间: 6年前

内容简介:写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。

写在前面 经过一段时间的整理,希望读者看完后对自己的知识点有所帮助。

写过 java 的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。

就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。

Java笔记——看完这个,打通Spring难度系数

控制反转

Java笔记——看完这个,打通Spring难度系数

spring ioc容器

在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特×××。

Java笔记——看完这个,打通Spring难度系数

如果说在三个核心中再选出一个核心,那就非Bean莫属了。可以说,Spring就是面向Bean的编程,Bean在Spring中才是真正的主角。

Spring为何如此流行?你会发现Spring解决了一个非常关键的问题,它可以让你对对象之间的关系转而用配置文件来管理,或者注解,也就是它的依赖注入机制。而这个注入关系在一个叫Ioc的容器中管理。Ioc容器就是被Bean包裹的对象。Spring正是通过把对象包装在Bean中从而达到管理这些对象及做一些列额外操作的目的。

Java笔记——看完这个,打通Spring难度系数

Java笔记——看完这个,打通Spring难度系数

Java笔记——看完这个,打通Spring难度系数

核心组件协同工作

Java笔记——看完这个,打通Spring难度系数

BeanFactory与ApplacationContext的区别

IOC中最核心的接口是Beanfactory提供IOC的高级服务,而ApplicationContext是建立在BeanFactory基础之上提供抽象的面向应用的服务。

Java笔记——看完这个,打通Spring难度系数

3种注入方式

在Spring框架中,依赖注入(DI)的 设计模式 是用来定义对象彼此间的依赖。使用xml配置bean的情况下,它主要有两种类型:

  • Setter方法注入

  • 构造器注入

当然,有了注解之后,使用注解的方式更加方便快捷。即自动装配功能实现属性自动注入(@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);, 该构造方法具体代码如下。

Java笔记——看完这个,打通Spring难度系数

Java笔记——看完这个,打通Spring难度系数

从时序图来看启动上述初始化

Java笔记——看完这个,打通Spring难度系数

喜欢的点点关注点点赞


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google

Google

托马斯·舒尔茨(Thomas·Schulz) / 严孟然、陈琴 / 当代中国出版社 / 2016-11-1 / CNY 49.80

想要掌握未来,必须了解谷歌 1998年从车库起家,短短数年研发上千项专利,2016年力压苹果、亚马逊,成为“世界最具价值品牌”“最佳雇主”,谷歌无疑是互联网时代的最大赢家,这家公司有能力通过巨额广告利润收获现在,更有意愿在人工智能层面创造未来。 据说谷歌势不可挡,永不餍足。从互联网搜索到智能翻译再到地图导航,谷歌是我们通向世界的门户。不仅如此,就像管理全世界的数据流一样,谷歌还要在不久......一起来看看 《Google》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具