Spring 基础知识

背景
这里写图片描述
在没有使用Spring的时候,我们的代码架构基本是这样,层与层之间的依赖性很强,各层的生命周期都是由上层控制,效率低,属于紧耦合。于是,这时候Spring就出现了。
这里写图片描述
Spring通过IoC(控制反转)机制和DI(依赖注入)机制将各层之间的(依赖)关系打散。这两点都是通过Java反射机制来实现的,这里就不扩展了。

控制反转:就是由容器(Spring)控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。通俗点解释就是由Spring容器来控制我们对象的生命周期,对象都存在Spring容器中,需要用的时候向Spring容器取就行了,不需要开发者去创建以及释放资源。这样开发者只需要关注对象的使用,其他就交给Spring容器就行了。

依赖注入:组件之间的依赖关系由容器在运行期决定,由容器动态的将某种依赖关系注入到组件之中。假如我们在需要B对象时,可以直接向Spring容器取,也可以在Spring创建A类对象的同时将B类对象放入A类对象内部,也就是说,A类对象无需再问Spring容器拿B类对象,这就是依赖注入。

Spring(容器)控制所有对象的生命周期,由与上层不再控制下层的生命周期,层与层之间实现了完全脱耦,使程序运行起来效率更高,维护起来也方便。

另外,AOP(面向切面编程)也是Spring的一个重要思想。AOP可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
主要应用于:日志记录,性能统计,安全控制,事务处理,异常处理等等。
主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
这里写图片描述
在传统的编程方式中,这些服务逻辑的代码总是会渗透到业务逻辑的代码中,使得服务逻辑和业务逻辑完成完全混杂在一起,这样会使业务系统变的更加复杂。
这里写图片描述
引入AOP后,把这些服务逻辑收集起来,设计成各个独立可重用的切面,在需要该服务的业务逻辑之上织入即可。这样,这些服务逻辑就灵活地应用到业务系统中,在调用业务逻辑代码时并不关心他们的存在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值