当前位置: 首页 > news >正文

学习java第二十六天

Spring是一个开源框架,Spring是一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的full¬stack(一站式)轻量级开源框架。
Spring AOP的实现原理:
Spring AOP使用的动态代理,所谓的动态代理就是说AOP框架不会去修改字节码,而是在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。
Spring AOP中的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理。JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口。JDK动态代理的核心是InvocationHandler接口和Proxy类。
如果目标类没有实现接口,那么Spring AOP会选择使用CGLIB来动态代理目标类。CGLIB(Code Generation Library),是一个代码生成的类库,可以在运行时动态的生成某个类的子类,注意,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。
 

http://www.lryc.cn/news/327733.html

相关文章:

  • Go第三方框架--gin框架(二)
  • 五分钟搞懂UDS刷写34/36/37服务(内含S19文件解读)
  • 知识图谱智能问答系统技术实现
  • 【unity】如何汉化unity编译器
  • 为什么Python不适合写游戏?
  • 查询优化-提升子查询-UNION类型
  • 【数据结构 | 图论】如何用链式前向星存图(保姆级教程,详细图解+完整代码)
  • 气象预测新篇章:Python人工智能的变革力量
  • 基于微信小程序的民宿短租系统设计与实现(论文+源码)_kaic
  • vue3开发前端表单缓存自定义指令,移动端h5必备插件
  • 骗子查询系统源码
  • 目标检测+车道线识别+追踪
  • 非wpf应用程序项目【类库、用户控件库】中使用HandyControl
  • 【python】flask执行上下文context,请求上下文和应用上下文原理解析
  • DDos系列攻击原理与防御原理
  • Python拆分PDF、Python合并PDF
  • SqlServer(4)经典总结大全-技巧总结-数据开发-基本函数-常识整理-经典面试题
  • ArcGIS矢量裁剪矢量
  • pygame用chatgpt绘制3d沿x轴旋转的
  • golang大小写规则的影响
  • 基于Java在线考试系统系统设计与实现(源码+部署文档)
  • 如何应对复杂软件工程的开发流程?
  • JAVA的NIO和BIO底层原理分析
  • Python学习从0到1 day18 Python可视化基础综合案例 1.折线图
  • HTML网站的概念
  • 【微服务】Nacos(配置中心)
  • 比较AI编程工具Copilot、Tabnine、Codeium和CodeWhisperer
  • 顺应互联网发展大潮流,红河农资招商火爆开启
  • 网络七层模型之传输层:理解网络通信的架构(四)
  • 微信小程序实现图片懒加载的4种方案