spring问的一些问题(三)

- 什么是AOP

AOP(Aspect-Oriented Programming, 面向切面编程)和OOP一样,是一种编程范式,旨在通过将跨越应用程序的关注点模块化,提高代码的模块性、可维护性和可重用性
通俗的说就是用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为切面,以此来减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性

- Spring AOP and AspectJ AOP 有什么区别?AOP 有哪些实现方式?

  1. AOP实现的关键在于代理模式,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;动态代理的代表为Spring AOP
  2. AspectJ是静态代理的增强,所谓静态代理,就是AOP框架会在编译阶段生成AOP代理类,因此也称为编译时增强,他会在编译阶段将切面织入到Java字节码中,运行的时候就是增强之后的AOP对象
  3. Spring AOP使用的动态代理,所谓的动态代理,就是说AOP框架不会去修改字节码,而是每次运行时在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法

- 解释一下Spring AOP里面的几个名词

  1. 切面(Aspect): 切面是通知和切点的结合。 在Spring AOP中,切面可以使用通用类或者在普通类中以 @AspectJ 注解来实
  2. 通知(Advice):在AOP术语中,切面的工作被称为通知(前置、后置、环绕、异常、返回)
  3. 连接点(Join point): 指方法,在Spring AOP中,一个连接点 总是 代表一个方法的执行。连接点是在应用执行过程中能够插
    入切面的一个点。这个点可以是调用方法时、抛出异常时、甚至修改一个字段时。切面代码可以利用这些点插入到应用的正常流程之中,并添加新的行为
  4. 切入点: 切入点的定义会匹配通知所要织入的一个或多个连接点。我们通常使用明确的类和方法名称,或是利用正则表达式定义所匹配的类和方法名称来指定这些切点
  5. 目标对象: 也就是代理对象
  6. 织入: 织入是把切面应用到目标对象并创建新的代理对象的过程。

- 在Spring AOP 中,关注点和横切关注的区别是什么?(在 spring aop 中 concern 和 cross-cutting concern 的不同之处)

  1. 关注点(concern)是应用中一个模块的行为,一个关注点可能会被定义成一个我们想实现的一个功能。
  2. 横切关注点(cross-cutting concern)是一个关注点,此关注点是整个应用都会使用的功能,并影响整个应用,比如日志,安全和数据传输,几乎应用的每个模块都需要的功能。因此这些都属于横切关注点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是Spring框架?它的核心模块有哪些? 答:Spring框架是一个开源的Java应用程序框架,它提供了一个轻量级的容器来管理对象的生命周期和依赖关系。Spring的核心模块包括IOC(控制反转)容器、AOP(面向切面编程)框架、数据访和集成、Web开发等。 2. 什么是IOC(控制反转)和DI(依赖注入)? 答:IOC(控制反转)是一种设计模式,它将对象的创建和依赖关系的管理交给了容器来完成。DI(依赖注入)是IOC的一种实现方式,它通过将依赖关系注入到对象中,实现对象之间的解耦。 3. Spring框架中的AOP是什么?它有哪些常用的概念? 答:AOP(面向切面编程)是一种编程范式,它通过将横切关注点(如日志、事务等)从业务逻辑中分离出来,实现了代码的重用和解耦。Spring框架中的AOP常用的概念包括切面(Aspect)、连接点(Join Point)、切点(Pointcut)、通知(Advice)和目标对象(Target Object)等。 4. Spring框架中的事务管理是如何实现的? 答:Spring框架中的事务管理是通过声明式事务和编程式事务两种方式来实现的。声明式事务是通过在方法上添加注解或配置XML文件来声明事务的属性,而编程式事务是通过编写代码来实现事务的管理。 5. Spring框架中的MVC是什么?它的工作原理是什么? 答:Spring框架中的MVC(Model-View-Controller)是一种设计模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)个部分。MVC模式的工作原理是,用户请求首先被控制器接收并处理,然后控制器调用模型来处理业务逻辑并返回数据,最后控制器将数据传给视图进行展示。 6. Spring框架中的Bean是什么?它有哪些作用域? 答:在Spring框架中,Bean是由容器管理的对象,它们被实例化、组装和管理。Spring框架中的Bean有多种作用域,包括单例(Singleton)、原型(Prototype)、会话(Session)、请求(Request)和全局会话(Global Session)等。 7. Spring框架中的依赖注入有哪些方式? 答:Spring框架中的依赖注入可以通过构造函数注入、Setter方法注入和字段注入种方式来实现。构造函数注入是通过构造函数参数来注入依赖,Setter方法注入是通过Setter方法来注入依赖,字段注入是直接将依赖注入到字段中。 8. Spring框架中的Spring Boot是什么?它的特点是什么? 答:Spring Boot是Spring框架的一个子项目,它简化了Spring应用程序的开发和部署过程。Spring Boot的特点包括自动配置、快速开发、无需部署WAR文件、内嵌Web服务器等。 9. Spring框架中的JdbcTemplate是什么?它的作用是什么? 答:JdbcTemplate是Spring框架中的一个核心类,它提供了对JDBC(Java数据库连接)的封装和简化。JdbcTemplate的作用是提供了一种更简单、更方便的方式来执行数据库操作。 10. Spring框架中的AOP和AspectJ有何区别? 答:Spring框架中的AOP是基于代理模式实现的,而AspectJ是一种更为强大的AOP框架,它支持更多的切面语法和功能。AspectJ可以在编译期、类加载期或运行期织入切面,而Spring AOP只能在运行期织入切面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值