当前位置: 首页 > 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做动态代理的。
 

相关文章:

  • react-navigation:
  • 华为鸿蒙系统:重塑智能生态,引领科技未来新篇章
  • 使用PaddleX实现的智慧农业病虫检测项目
  • 2024 蓝桥打卡Day25
  • Java开发过程中如何进行进制换换
  • Python批量提取pdf首页并合并为一个文件
  • 厨余垃圾处理设备工业监控PLC连接APP小程序智能软硬件开发之功能原理篇
  • Windows运维_Windows下配置Apache-Haus(Apache2.4)
  • 在 Windows 11 上安装 MongoDB
  • Redis中的客户端(三)
  • 自动化更新包文件--shell脚本
  • 吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.1-3.5
  • 常见位运算方法
  • Qlib-Server部署
  • 1. Java概述
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • CSS 提示工具(Tooltip)
  • css系列之关于字体的事
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Js基础——数据类型之Null和Undefined
  • Netty源码解析1-Buffer
  • Redash本地开发环境搭建
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Vue2 SSR 的优化之旅
  • 高程读书笔记 第六章 面向对象程序设计
  • 简单基于spring的redis配置(单机和集群模式)
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 问题之ssh中Host key verification failed的解决
  • 小程序测试方案初探
  • 函数计算新功能-----支持C#函数
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 数据库巡检项
  • ​【已解决】npm install​卡主不动的情况
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​ubuntu下安装kvm虚拟机
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #pragma 指令
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (算法二)滑动窗口
  • (译) 函数式 JS #1:简介
  • (转)winform之ListView
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Micro Framework初体验
  • .Net7 环境安装配置
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [Android]使用Retrofit进行网络请求
  • [BUG]vscode插件live server无法自动打开浏览器
  • [BZOJ]4817: [Sdoi2017]树点涂色