小课堂
分享人:杨以杰
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
先简单介绍下背景
Spring是一个基于IOC和AOP结构的开源轻量级开发应用框架,Rod Johnson大神是为了解决企业级应用开发复杂性创建的,因此spring也说是J2EE系统的框架
Inversion of control
IOC控制反转是Spring的基础,简单说就是创建对象由以前的程序员自己new, 变成了交由Spring创建对象。这就是平常的java开发中, 我们在某个类中需要依赖其它类的方法,通常是new一个依赖类然后再调用类实例的方法,但是 new 的类实例不便于统一管理,耦合性更高; 这个时候IOC的思想就凸显出来了:由 Spring容器来实现这些相互依赖对象的创建、协调工作, 对象只需要关系业务逻辑本身就可以了; 这样理解的话,对象如何得到他的协作对象的责任被反转了。
Dependency Injection
DI 依赖注入 . 简单地说就是拿到的对象的属性,已经被注入好相关属性值了,直接使用即可,当然还可以像上面提到反转,也就是注入一个对象 就像jdbc里面,对象A需要操作数据库,以前首先需要A自己编写代码来获得一个Connection对象, 有了spring我们就只需要告诉spring,A需要一个Connection,在系统运行时,spring会在适当的时候制造一个Connection,注射到 A中,这样就完成了对两个对象之间关系的控制。A需要依赖Connection才能正常运行,而这个Connection是由spring注入到A中的, 依赖注入的名字就这么来的。
什么是依赖?什么是注入?
通过编码来看效果
使用ref;
使用autowire;
上面是注入对象行为属性的注解,那么bean对象本身,比如student,school可不可以移出applicationContext.xml 配置文件,也通过注解进行呢?
1,https://ptteng.github.io/PPT/PPT-java/java_task1_14_SpringIOC.html#/5
2,https://ptteng.github.io/PPT/PPT-java/java-IOC-task1.html#/9
3,http://www.yiibai.com/spring/
4,https://baike.baidu.com/item/spring/85061?fr=aladdin
什么是AOP
By : 杨以杰