1.什么是Spring?
Spring是一个分层的JavaSE/EE full-stack**(一站式)轻量级开源框架,它以IOC(控制反转)和AOP(面向切面编程)**为内核。
2.Spring的三层体系架构
- 表现层:提供了Spring MVC 以及Struts框架的整合功能。
- 业务逻辑层:管理事务,记录日志等。
- 持久层:可以整合MyBatis、Hibernate、jdbc Template等技术。
Spring贯穿以上三层,但是并不取代那些已有的框架,而是以高度的开放性与它们进行无缝整合。
3.Spring框架的优点(具体不做解释)
- 非侵入式设计
- 方便解耦,简化开发
- 支持AOP
- 支持声明式事务处理
- 方便程序的测试
- 方便集成各种优秀框架
- 降低javaEE API的使用难度
4.Spring的体系结构(具体内容下回遇到再做笔记)
Spring框架采用的是分层架构,它的一系列功能要素分为20个模块,大体分为:Core Container(核心容器)、Data Access/Intergration(数据访问/集成)、Web 、AOP(面向切面编程)、Instrumentation、Messaging 和 Test。
问题:
(1)为什么说Spring可以一站式?
(2)什么是IOC(控制反转)?
(3)什么是AOP(面向切面编程)?
答:
(1)因为Spring框架性质是属于容器性质,容器中装什么对象就有什么功能,所以Spring框架可以一站式。
(2)Ioc : Inverse Of Control 反转控制
通俗点说就是我们创建对象的方式反转了。
以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。
使用了Spring之后,对象的创建以及对象中的依赖关系由Spring完成创建以及注入。
反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序(Spring)。
(3)AOP相关的概念
1) Aspect :切面,切入系统的一个切面。比如事务管理是一个切面,权限管理也是一个切面;
2) Join point :连接点,也就是可以进行横向切入的位置;
3) Advice :通知,切面在某个连接点执行的操作(分为: Before advice , After returning advice , After throwing advice , After (finally) advice , Around advice );
4) Pointcut :切点,符合切点表达式的连接点,也就是真正被切入的地方;
使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。
从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。
这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了 将不同的关注点分离出来的效果。