首页 > 编程语言 >学习java第二十六天

学习java第二十六天

时间:2024-03-28 23:58:05浏览次数:25  
标签:第二十六 java 框架 Spring 代理 学习 CGLIB AOP 动态

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做动态代理的。
 

标签:第二十六,java,框架,Spring,代理,学习,CGLIB,AOP,动态
From: https://blog.csdn.net/qq_40694812/article/details/137128144

相关文章

  • 跨时钟域学习记录(二)——XPM_CDC
      本文以Xilinx提供的xpm_cdc代码为例,整理处理跨时钟域数据传输的常见方法。宏定义  Xilinx定义了多个宏定义代替描述触发器行为的always块,列举如下宏名称含义XPM_XSRREG带同步复位/置位的同步寄存器XPM_XSRREGEN带同步复位/置位和使能的寄存器XPM_XARREG带异步复位/......
  • 关于RCE的学习(2)nssctf部分题目实操(1)
           结果对一些基础命令的学习,我发现一个非常显而易见的问题,那就是,理论知识如果没有建立在实操的基础上来讲的话,那么理论知识就会显得非常空,那么结合我上一篇对rce学习的文章,我对一下题目做出如下总结。       首先是,[SWPUCTF2021新生赛]easyrce   ......
  • 国外的Java面试题和国内的相比谁更卷
    前言有很多朋友很好奇国外的Java面试题长啥样,今天我们就去找5道国外的面试来和国内的对比一下看看谁难一些!面试题分享1.IsJavaPlatformIndependentifthenhow?(Java平台是独立的吗?)Yes,JavaisaPlatformIndependentlanguage.Unlikemanyprogramminglang......
  • 2024年150道高频Java面试题(一)
    1.JDK和JRE有什么区别?JDK(JavaDevelopmentKit)和JRE(JavaRuntimeEnvironment)是Java技术的两个核心组成部分,它们之间的主要区别如下:功能定位:JDK:它是提供给Java开发者的软件开发工具包,包含了Java程序开发所需的各种工具,比如编译器(javac)、调试器(jdb)和其他工具(如java......
  • Java之旅:从零到英雄的编程探索
    写给Java刚入门者的一篇文章引言当你踏上学习Java的旅程时,你开始了解世界上最流行和功能强大的编程语言之一。Java不仅在全球IT行业中占据重要地位,还因其跨平台性、强大的社区支持和丰富的应用而受到欢迎。本文旨在为刚入门的Java学习者提供一份全面的指南,帮助你构建坚实......
  • 2024年3月28号java学习
    面向对象一个对象的内存图Student s=newStuden();加载new类的.class文件(只需要加载到方法区一次)声明局部变量(s)在堆中开辟一个空间默认初始化显示初始化构造方法初始化将堆内存中的地址值赋值给左边的局部变量this关键字是一个指向方法调用者的内存地址的引用......
  • JSP与JavaBean 《Java Web开发从入门到实战》第五章节
    编写JavaBean1JavaBean特点可重用升级方便不依赖于平台JavaBean分类业务bean封装业务逻辑、数据库操作等数据bean封装数据让JSP引擎(如Tomcat)知道一个bean的属性和方法类的成员变量要有setXXX方法(获取属性)和getXXX方法(更改属性)对于boolean类型的成员变量,允许......
  • 剑指offerJZ20题 表示数值的字符串 java
    描述剑指offerJZ20题表示数值的字符串请实现一个函数用来判断字符串str是否表示数值(包括科学计数法的数字,小数和整数)。科学计数法的数字(按顺序)可以分成以下几个部分:1.若干空格2.一个整数或者小数3.(可选)一个‘e’或‘E’,后面跟着一个整数(可正可负)4.若干空格......
  • 选择排序(java)
    选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列解题思路:选择排序的基本思路是遍历整个数组,每次找到剩余部分中的最小值,然后将其与当前位置进行交换。这样每一次遍历都能确定一个元素的最终位置,......
  • 机器学习模型之逻辑回归
    逻辑回归是一种常用的分类算法,尤其适用于二分类问题。逻辑回归的核心思想是通过对数几率函数(logisticfunction)将线性回归的输出映射到概率空间,从而实现分类。逻辑回归的原理:逻辑回归模型使用对数几率函数(logisticfunction)作为激活函数,将线性回归的输出映射到概率空间。对数......