一、本节课程的目的
1、了解自研框架的总体架构设计;
2、了解Spring的总体结构以及学习路径;
二、出于信仰学习Spring的简史
1、一个问题
如何能让应用程序能以超出当时大众所惯于接受的易用性和稳定性与J2EE平台上的不同组件合作?
2、Spring特点
详尽的文档;
快速方便地集成项目用到的技术;
三、Spring设计的初衷
用于构造Java应用程序的轻量级框架;
1、可以采用Spring来构造任何程序,而不局限于Web程序;
2、轻量级:最少的侵入,与应用程序低耦合,接入成本低;
3、最直观的感受:基于POJO,构建出稳健而强大的应用;
四、Spring的野心
为各大技术领域提供支持;
微服务、移动开发、社交API集成、安全管理、云计算等等;
五、Spring框架图
六、Spring基础核心模块预览
1、spring-core
包含框架基本的核心工具类,其他组件都要使用到这个包里的类;
定义并提供资源的访问方式;
2、spring-beans
Spring主要面向Bean编程(BOP);
Bean的定义、解析、创建;
BeanFactory;
3、spring-context
为Spring提供运行时环境,保存对象的状态;
扩展了BeanFactory;
ApplicationContext;
4、spring-aop
最小化的动态代理实现;
JDK动态代理;
Cglib;
只能使用运行时织入,仅支持方法级编织,仅支持方法执行切入点;
七、为了完整而讲的非核心模块
spring-aspectj + spring-instrument : Full AspectJ
在Java语言中,从织入切面的方式来看,存在三种织入方式:
编译期Weaving;
类加载期Weaving;
运行期Weaving;