第二卷 第一章 伪IOC容器--羊墅
写在前面:
Spring自诞生起,就被人称作“万能胶”,核心服务就是解耦 ,随着Spring5的出现,已经形成一个生态,被人称作spring全家桶,而且逐步在去serlvet化,去tomcat化,大有独成一家之势。
相比于早期程序员自己new对象,IOC/DI大大解放了程序员双手,让开发者更加关注业务,而不需关系技术细节。而AOP采用面向切面编程思想,让开发者无须关心业务之外等适普性技术点:如日志管理,事务管理等。
话说参观Spring的人还真不少,又一次印证了迦娃的羊群理论。虽然这个超级基地已经运营的消息只有少数人知道,但是在这个网络已经犹如水、电一般普遍的世纪里。这样的超级基地肯定是藏不住的。
话不多少,让我们先用30个类了解下Spring的基本概况。
我们会通过5大模块来介绍Spring,依次顺序是IOC->DI->MVC->AOP->JDBC,依次展开,同时对应名5个小故事映射其核心思想。
分别是
1.伪IOC容器--羊墅
2.送货上门的羊肉
3.待定。。。
4.待定。。。
5.待定。。。
这里先上一张图,IOC的核心类图(源码中ApplicationContext为接口,此处简化为类,目的是理解其流程思想),看图:

具体代码见:github地址:https://github.com/Airxia/JLSpring 欢迎下载体验
话说这天,Spring派人去外部世界(内存外,此处先定为磁盘)寻找羊群(定位资源文件)。在找来羊群(配置文件)之后,首先带其进入内存世界(可以想象为一张巨大的结界网膜,经过之后就会被转成流态),而后对流态羊群中的每一只羊进行了一番扫描巡视(相当于扫描配置文件里配置的包路径下的所有类),再对它们进行清洗,然后挂上了Spring自己的牌子,可以说是改头换面,脱胎换骨,由新羊变成了旧羊(相当于将Bean封装成BeanDefinition)。最后就送入了羊墅(伪IOC)进行高品质的优待,听钢琴,吃大餐。
预知后事如何,且听下回分解~~~
第二卷 第一章 伪IOC容器--羊墅的更多相关文章
- JAVA核心技术第二卷 第一章
流的家族:
- Spring入门篇——第2章 Spring IOC容器
第2章 Spring IOC容器 介绍Spring IOC容器的基本概念和应用 2-1 IOC及Bean容器 自己的理解:什么是IOC?就是利用配置文件(外部容器)来创建对象. 在IOC容器中,所有对 ...
- Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述
第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库 如果想要有奇特的绘 ...
- JAVA入门第二季 第一章 类和对象
面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...
- Java入门第二季第一章类和对象知识点
Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...
- python基础教程第二版 第一章
1.模块导入python以增强其功能的扩展:三种方式实现 (1). >>> Import math >>> math.floor(32.9) 32.0 #按照 模块 ...
- 算法竞赛入门经典第二版第一章习题-(练习Java和C++语法)
习题1-1 平均数(average) 输入三个整数,输出他们的平均值,保留三位小数 Java: package suanfa; import java.util.Scanner; public cla ...
- Spring核心技术(一)——IoC容器和Bean简介
IoC容器和Bean简介 这章包括了Spring框架对于IoC规则的实现.Ioc也同DI(依赖注入).而对象是通过构造函数,工厂方法,或者一些Set方法来定义对象之间的依赖的.容器在创建这些Bean对 ...
- 《Spring技术内幕》笔记-第二章 IoC容器的实现
简单介绍 1,在Spring中,SpringIoC提供了一个主要的JavaBean容器.通过IoC模式管理依赖关系.并通过依赖注入和AOP切面增强了为JavaBean这样子的POJO提供事务管理,生命 ...
随机推荐
- Apple全系列缓冲区溢出内核RCE(CVE-2018-4407)poc
# CVE-2018-4407 ICMP DOS # https://lgtm.com/blog/apple_xnu_icmp_error_CVE-2018-4407 # from https://t ...
- AIX系统命令
当/oracle达到一定使用量时需清除*.trc文件find . -name "*.trc"|xargs rm -rf 1.查看是否开启归档日志切换用户:su - oracle使用 ...
- Hadoop HDFS命令学习笔记
cat Usage: hadoop fs -cat [-ignoreCrc] URI [URI ...] Copies source paths to stdout. Options The -ign ...
- Python-sympy科学计算与数据处理(方程,微分,微分方程,积分)
方程 a,b,c,x = symbols("a b c x") my_eq = Eq(a*x**2+b*x+c,0) solve(my_eq,x) Out[12]: [(-b + ...
- sql拼接中的小错误
字符串类型变量拼接到sql字符串上,容易忘记添加单引号,使用jdbcTemplate执行,报如下错误 正确写法如下:
- Markov logic network
A Markov logic network (or MLN) is a probabilistic logic which applies the ideas of a Markov network ...
- 安装horizon
在控制节点上安装 controllerHost='controller' ADMIN_PASSWD='Ideal123!' 1.安装dashboard组件 yum -y install opensta ...
- 【VS开发】单文档中往视图中加入控件
[VS开发]单文档中往视图中加入控件 标签(空格分隔): [VS开发] 分隔视图的但文档窗口,要显示控件,推荐使用CFormView或者CCtrlView,前者和对话框的做法一致. 在MainFram ...
- SGI RB-tree深入理解
前言 在学习STL源码之前我也曾无数次想要弄懂红黑数的原理,奈何每次都被困难打退.说实话,红黑树是真的很难理解,需要不断沉淀才能慢慢体会其妙处.这两天看SGI的RB-tree实现,结合侯捷老师的< ...
- poj2299(归并排序求逆序对)
题目链接:https://vjudge.net/problem/POJ-2299 题意:给定一个序列,每次只能交换邻近的两个元素,问要交换多少次才能使序列按升序排列. 思路:本质就是求逆序对.我们用归 ...