Spring初步认识-(1)

Spring初步认识-(1)

Spring:为了适应企业级系统的大规模,即:用户数量大数据规模大功能众多性能和安全的要求高业务复杂灵活应变的需求而产生的轻量级框架,

以上目的,由以下四个策略来实现:

  1. 基于POJO(Plain Old Java Object普通Java类)的轻量级和最小入侵性编程
  2. 通过依赖注入和面向接口实现松耦合
  3. 基于切面的惯例进行声明式编程
  4. 通过切面和模板减少样板式代码

内容:IOC 容器,AOP实现数据访问支持简化JDBC/ORM框架声明式事务 WEB集成

设计理念:面向Bean的编程

核心技术

控制反转(IOC : Inversion of Control)/依赖注入(DI :Dependency Injection)

面向切面编程:(AOP: Aspect Oriented Programming)

优点

  1. 低侵入式设计(去除此框架后,只需要修改一些配置信息,代码的污染极低)
  2. 独立于各大中应用服务器
  3. 依赖注入的特性将组件关系透明化 ,降低了业务对象替换的复杂性,提高了组件之间的解耦
  4. 高内聚,低耦合
  5. AOP支持将一些通用的任务和安全、事务、日志等进行集中式管理,从而提供了更好的复用

Spring框架是一个分层框架,包含了一系列的功能要素得分为大约20个模块
在这里插入图片描述
控制反转(IOC)/依赖注入(DI)

将组件对象的控制权 从代码本身转移到外部容器的思想:分离关注点,使用接口,不在关注实现(也就是由外部的IOC容器来控制组件对象的创建、销毁,不需要我们去实现类)

spring 的出现,解耦合不同类之间的依赖,谁需要谁,都找 spring,一切由spring提供,不需要自己将类实例化

依赖注入:将组件的构建和使用分开,和控制反转一样,只是表述不同

AOP(Aspect Oriented Programming)

面向切面编程,函数式编程的一种衍生泛型。,面向…编程,只是关注点的不同,例如:

  • 面向过程编程: 就看实现一个功能需要什么步骤,然后用代码表示出这些步骤就好了,不管代码的重用,耦合性问题。关注点是 步骤、过程。
  • 面向对象编程: 需要实现该功能,但是需要考虑到流程的结构,代码重用,耦合问题。需要先建立一个对象,对这个对象实例化实现功能。关注点是 对象。
  • 面向切面编程: 它关注于应用中的 核心业务 模块,而设法将一些次要的,辅助的功能统一管理,如日志、安全、验证等。
  1. AOP采取横向抽取机制,取代了传统的纵向继承体系 重复性代码
  2. 经典应用:事务管理、性能监视、安全检查、缓存、日志等等…
  3. Spring Aop 使用纯Java实现,补充需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类 注入 增强代码
  4. AspectJ是一个基于Java语言的AOP框架,Spring 2.0开始 Spring AOP引入对Aspect 的支持,Aspect扩展了Java语言,提供一个专门的编译器,在编译时提供横向代码的织入.

横向:将一个类抽取出来,从其生命周期(时间轴)来操作,在其生命周期的不同阶段加入一些可以共用的功能模块,来达到代码复用的目的。区别于在其原有的类上通过继承,多态再去实现更多的功能。
在AOP中的一些概念:
1、目标类(target) , 需要被代理的类 例如 UserService

2、连接点(JoinPoint):是指那些可能被拦截的方法,例如 addUser 。。。。。

3、切入点(PointCut) 已经被增强的连接点 例如:addUser…….

4、通知/增强(advice) :增强代码 前置增强 后置增强 环绕增强 异常增强 最终增强

5、织入(Weaving) 是指把增强 advice 应用到目标对象target来创建新的代理对象Proxy的过程

6、代理类(Proxy)

7、Aspect(切面) 是切入点PointCut和通知advice的结合
在这里插入图片描述

参考: spring 框架的核心总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值