Spring意义:简化开发
Spring是面向Bean的编程,提供了IOC容器通过配置文件或者注解方式来管理对象之间的依赖关系。 IOC 控制反转,依赖注入 原本的类Test A=new Test(); A.get();、这种实例化的控制权在我们手中,现在利用spring注解如@Autowired的方式spring初始化了这个对象,控制权反转到了spring手中。
IOC容器存储的是javabean实现依赖注入,
@autowrite interfaceA a 自动把它实现类注入进来 @Resource(“aaa”) A b IOC容器中吧id为aaa自动注入到这里 @autowrite A a 根据类型自动注入Spring注入方式
1 setter 2 构造方法 3 强制赋值实例化的先后顺序 b a c
依赖链中的所有对象,ioc容器里面初始化class C{
private A a;public void fun(){
(); } }Class A{
private B b;
}
面向切面AOP
先要把一个整体,拆分,分别开发,等到发布运行的时候再组装到一起运行。 拆分的规则就是切面,根据切面在无缝组装。 核心思想就是解耦AOP完全融进了spring
Authentication 权限
Logging 日志 transction manager 事务 Lazy Loading 懒加载 context process 上下文处理 Error handler 错误跟踪(异常捕获机制) cache 缓存di 依赖注入
IOC 控制反转 AOP 面向切面 Spring 核心宗旨 :简化开发 AOP核心宗旨:解耦用到了代理模式 CGLib动态代理
AOP:事务代理(声明式事务,哪个方法需要加事务,哪个方法不需要加事务) 日志监听 service 方法 开启事务open 事务的执行是由我们自己的代码完成 监听是否有异常,可能需要根据异常类型来决定事务是否回滚或者继续提交 commit rollback 事务要关闭close 蓝色都是动态代理完成的Spring思想 应用场景 归纳
AOP 找出多个类中有一定规律的代码,开发时候拆开,运行时合并。面向切面编程,即面向规则编程 解耦,专人做专事 OOP 归纳总结生活中的一切事务。面向对象编程。 封装,继承,多态 IOC 把new对象的权利交给spring事务,并且由spring来保存已创建的对象 控制反转 DI/DL 依赖注入,依赖查找。spring不仅保存自己创建的对象还保存了对象与对象的关系。注入即赋值,主要是三种方式:构造方法,set,直接赋值 先理清关系再赋值 BOP 面向bean设计程序 一切从bean开始俯瞰Spring架构设计
Spring总共大约有20个模块,由1300多个不同的文件构成。这些组件被分别整合到了核心容器(Core Container),AOP(Aspect Oriented programming)和设备支持(Instrmentation),数据访问及集成(Data Access、Integeration),web,报文发送(Message),Test, 6个模块集合中。 如下是Spring4的架构图Spring依赖结构图
Spring源码学习路线图:从Spring-core入手,接着是spring-beans和spring-aop然后是spring-contest,然后是spring-tx和spring-orm 最后是spring-web和其他部分
源码下载:
第一步第二步
下载gradle第三步
解压,配置GRADLE_HOME 和Path第四步
验证 gradle -v 环境变量是否正确第五步
构建eclipse项目 gradle eclipse -x :eclipse 需要等待一段时间 第六步 引入到eclipse环境中