前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Spring

关于Spring

作者头像
Noneplus
发布2020-01-22 09:49:18
3890
发布2020-01-22 09:49:18
举报
文章被收录于专栏:开发笔记开发笔记

在SpringBoot火爆2019的年代,Spring框架也逐渐变成了底层。对于具体的应用,使用Spring开发的效率远远比不上使用SpringBoot,IOC与AOP的xml在SpringBoot中被取代,包依赖也被进一步被封装成各个模块。 简化开发的同时带来了更多的透明性,欲戴皇冠,必承其重。

Spring有两大特性:IOC和AOP。

关于IOC,

之前在CSDN写了一篇描述:https://blog.csdn.net/qq_40754146/article/details/90815333

在Spring的时代,就推荐使用注解而不是xml来配置,在SpringBoot中完全实现了注解的全面占领。

IOC有什么用?

1574085455811
1574085455811

IOC容器的背景是构建大型应用时会用到很多类,而完成对类与类之间的各种依赖关系管理成为了一个问题,于是IOC容器出现了。

IOC容器的作用就是管理类之间复杂的依赖关系。

用专业的名词解释,就是降低类之间的耦合度,方便后期开发和维护。

降低耦合本质上是将类与类之间的耦合转为类和IOC容器之间的耦合,PS:耦合不能完全消除,只能减小。

关于AOP

AOP中文名叫面向切面编程。

AOP使用动态代理实现。包括两种方式:

  • 使用JDK动态代理实现。
  • 使用cglib来实现

关于动态代理:

  • 静态代理:自己编写创建代理类,然后再进行编译,在程序运行前,代理类的.class文件就已经存在了。
  • 动态代理:在实现阶段不用关心代理谁,而在运行阶段(通过反射机制)才指定代理哪一个对象。

关于反射:反射机制允许程序在运行期 借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 (最高权限)

AOP的实现本质是反射加上代理模式。

面向切面的思想本质上就是通过动态代理(反射)实现各个类的代码控制。

依然是很抽象的一句话。。。。。

【举个栗子】

现在有5个类,每个类有5个方法,如果我想要在每个方法执行完成之后打印方法名,按照没有aop的思想就是在每个方法后面加上logger.info或者system.out.println。

一共就需要些25行代码,这个时候,aop登场。建立一个切面类,然后定位到这5个类的每个方法,加一个后置通知(就是方法执行完之后会执行这个通知,本质上是一个方法)。

这样25行的代码简化成了一个方法加方法体的一行代码,如果说IOC是解决类与类之间的依赖关系(有点无形),那么AOP是看得见可以简化大量代码。

AOP的应用场景有日志记录,性能统计,安全控制,事务处理,异常处理等。目前用过的就是日志处理(hhh)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring有两大特性:IOC和AOP。
    • 关于IOC,
      • 关于AOP
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档