Spring学习之路(一)

Spring概述

    Spring的主要作用是降低代码之间的耦合,根据其功能的不同,可以将一个系统中的代码分为主业务逻辑系统级业务逻辑。

    它们各自具有鲜明的特点,主业务逻辑代码之间的逻辑联系紧密,有具体的专业业务应用场景,代码的复用性较低;系统级业务的功能相对独立,没有具体的专业业务应用场景,主要是为了给主业务提供系统级服务,例如日志、安全、事务等,代码的复用性很强。

    Spring为了降低耦合度的方式有两种:IOC和AOP,这是Spring的两大特点。IOC使得主业务在相互调用的过程中,不在自己维护关系,即不用再自己创建要使用的对象。而是由Spring容器进行统一管理,自动注入。而AOP使得系统级服务得到了最大的复用,并且不用再由程序员手工将系统级服务混杂到主业务中,而是由Spring容器进行统一的管理。

    Spring从诞生发展到现在,已经成为了一个很大的家族,它的体系结构十分庞大,具体的体系结构如下图所示:

Spring体系结构

    Spring由20多个模块组成,他们可以分为数据访问/集成(Data Access/Integration)、Web、面向切面编程(AOP,Aspects)、应用服务器设备管理(Instrumentation)、消息发送(Messaging)、核心容器(Core Container)和测试(Test)。

Spring的特点

    1、非入侵式

    所谓的非入侵式指的是Spring框架的API不会在业务逻辑上出现,即业务逻辑是POJO。由于业务逻辑中没有Spring的API,所以业务逻辑可以非常快速地从Spring框架移植到其它框架中,与环境无关。   

    2、容器

    Spring对象作为一个容器可以管理对象的生命周期,对象与对象之间的依赖关系。可以通过配置文件来定义对象,以及设置与其他对象的依赖关系。

    3、IOC

    控制反转(Inversion of  Control),即创建被调用者的实例不是由调用者完成,而是由Spring容器完成,并注入调用者

    当应用了IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象创建或者查找依赖对象。即,不是对象从容器中查找依赖,而是容器在对象初始化时不等对象发出请求就已经将依赖传递给它。

    4、AOP

    面向切面编程(AOP,Aspects Orient Programming),是一种编程思想,是对面向切面编程OOP的一种补充。Spring对面向切面编程提供了丰富的支持,允许分离应用的业务逻辑和系统级服务(如日志和事务管理)进行开发。应用对象只实现它们应该做的----->完成业务逻辑,仅此而已。并不负责其他的系统级的业务(如日志和事务管理)。

    我么可以把日志、安全和事务管理等服务理解成一个“切面”,在之前我们通常是把这些服务直接写在业务的逻辑代码中,这里有两点不好:首先是业务逻辑不够干净;其次这些服务被很多业务逻辑重复使用,完全可以剥离出来做到复用。AOP就完美的解决了这种情况,可以把这些服务剥离出来形成一个切面,用来做到复用,然后将切面动态注入到业务逻辑中,让业务逻辑能够使用到这些切面。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值