-
Spring是一个一站式的轻量级框架
-
我们之前学过的struts、hibernate等框架都是针对某一层的特定框架,而Spring并不针对某一个层,它是个一站式的框架,可以理解为Spring用来整个各个层。
-
传统三层调用模式,如下图:
-
上图所示调用“人”的添加方法,我们在web层需要new一个service对象,在service层需要new一个dao对象,这样耦合度极高。
-
使用Spring框架之后的调用模式,如下图:
-
我们可以把Spring看做一个容器,它帮助我们管理我们在开发过程中使用到的对象。可以通俗的理解为Spring容器干掉了我们代码中的new操作。
二、Spring体系结构
-
Core Container
-
Core:提供Spring最基本的功能
-
Beans:核心是BeanFacory
-
Context:核心是ApplicationContext
-
SpEL:Spring提供的一个语言表达式
-
-
Data Access/Integration
-
本身提供简单的数据访问封装,比如Spring就对JDBC进行了简单的封装供我们使用
-
我们也可以很方便的集成其它ORM框架,如Hibernate、Mybatis等
-
-
Web
-
本身提供web框架,如SpringMvc
-
也可以很方便的集成其它web框架,如Struts等
-
-
AOP(重点)
-
面向切面编程
-
三、Spring框架—VS—美团外卖平台
-
我们可以把Spring框架比做是美团外卖平台。
-
没有美团外卖的时候,我们想要在家里吃饭店的饭,我们需要自己去饭店买,饭店做好之后给我们打包我们带走。有了美团外卖之后,我们直接在美团外卖平台上订某某个饭店的饭,做好之后有专门的外卖小哥给我们送过来。我们不需要关心外卖小哥是如何把饭送过来的。
-
没有Spring框架之前,我们调用service层对象的方法时,需要在web层new一个service对象才能够调用。有了Spring框架,我们只需要给Spring说我要用某某个对象,Spring就会给我们提供一个供我们使用。我们不需要关心Spring是如何管理对象的。
四、使用Spring有什么优点,为什么要使用Spring?
-
由上述文字我们可以总结发现,使用Spring框架可以高度解耦。Spring就像一个大工厂,它帮助我们管理所有对象的创建和依赖关系维护。
-
Spring框架还提供AOP面向切口编程支持,可以很方便的实现对程序权限进行拦截、运行监控等。
-
Spring也封装了事务管理,我们不需要像之前那样去手动编码控制事务。
-