Spring面试题pro版-4

简介: Spring面试题pro版-4


Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

什么是AOP,AOP的作用和优势

aop就是面向切面编程,把程序的可复用代码进行抽取,在执行的过程中,通过动态代理技术,对当前的方法进行增 强。不用修改原有业务代码。可以减少重复代码,提高开发效率,维护方便。

什么是动态代理

动态代理的字节码随创建的时候进行使用,随用随加载,静态代理是代码已经写好的,代码创建好完成加载。

就是说,静态字节码是我们将特定的增加代码已经写好了。动态字节码是随着运行期间,针对于捕捉到的方法,进行

增加,编译期间,他也不知道要对谁进行增强。

动态代理常用的两种方式

基于接口的动态代理

jdk动态代理,要求被代理的类至少实现一个接口。

基于子类集成的动态代理

cglib动态代理,被代理类必须要可以被集成,不能是final类。

jdk动态代理如何实现

被代理类必须实现一个接口,首先调用Proxy的newProxyInstance方法,方法的参数有三个,被代理对象的类加载 器,被代理对象实现的接口和新建一个InvocationHandler。然后实现InvocationHandler中的invoke方法。 invoke 方法有三个参数。proxy代理对象的引用, method当前执行的方法, args执行方法所需的参数。在里面写好代理逻 辑后,通过method的invoke反射出去。

Cglib的Enhaner实现动态代理?

与jdk的不同, cglib的无需实现接口,要求被代理的对象不能是final的,主要用到Enhancer的create方法,第一个参 数是被代理对象的字节码,另一个参数callback就是我们要进行代理的增强功能。其中的callback要去实现里面的intercept方法。

相关文章
|
2天前
|
Java Spring
Spring面试题pro版-5
Spring面试题pro版-5
16 0
|
2天前
|
XML Java 数据格式
Spring面试题pro版-3
Spring面试题pro版-3
30 0
|
2天前
|
监控 Java 应用服务中间件
Spring Boot 源码面试知识点
【5月更文挑战第12天】Spring Boot 是一个强大且广泛使用的框架,旨在简化 Spring 应用程序的开发过程。深入了解 Spring Boot 的源码,有助于开发者更好地使用和定制这个框架。以下是一些关键的知识点:
20 6
|
2天前
|
监控 Java 数据库连接
总结Spring Boot面试知识点
Spring Boot是一个基于Spring框架的开源项目,它简化了Spring应用的初始搭建以及开发过程。通过提供“约定优于配置”的方式,Spring Boot可以帮助开发者快速构建出生产级别的Spring应用。
15 0
|
2天前
|
设计模式 安全 Java
Spring面试题pro版-6
Spring面试题pro版-6
19 0
|
2天前
|
缓存 Java Spring
Spring面试题pro版-2
Spring面试题pro版-2
13 0
|
2天前
|
Java 数据库连接 API
Spring面试题pro版-1
Spring面试题pro版-1
17 0
|
XML JSON 前端开发
Spring 面试 7 大问题,你顶得住不?
Spring 面试 7 大问题,你顶得住不?
207 0
Spring 面试 7 大问题,你顶得住不?
|
XML Java 数据格式
Spring 面试问题 TOP 50
Spring Framework 现在几乎已成为 Java Web 开发的标配框架。那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下。
1283 0
|
XML Java 数据格式
Spring面试基本问题(1)
1、什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。
1890 0