Java面试题(AOP专项)及详细答案.docxVIP

  • 0
  • 0
  • 约9.27千字
  • 约 9页
  • 2026-06-09 发布于河北
  • 举报

Java面试题(AOP专项)及详细答案

一、基础认知题(入门必问,考察核心概念)

1.请说说你理解的AOP?它解决了什么问题?实际项目中你怎么用的?

答案:首先,AOP全称是面向切面编程,它不是一种技术,而是一种编程思想,核心是“横向切入”——把程序中重复的、通用的逻辑(比如日志、权限校验、事务控制)抽离出来,做成一个“切面”,然后在不修改原有业务代码的前提下,动态切入到业务方法的指定位置(比如方法执行前、执行后)。

它解决的核心问题:避免代码冗余,解耦业务逻辑和通用逻辑。比如每个接口都要做日志记录,如果写在每个接口里,后期修改日志格式要改所有接口,而用AOP,只需要修改切面里的代码,所有切入的接口都会生效。

实际项目中的使用:比如我们项目里,所有接口的请求参数、响应结果都需要日志记录,就用AOP做了一个日志切面;还有事务控制,对所有增删改方法切入事务,确保操作的原子性;另外,权限校验也用了AOP,在方法执行前校验用户是否有操作权限,没有就直接返回异常,不用在每个方法里写校验逻辑。

2.AOP和OOP的区别与联系是什么?

答案:联系:OOP(面向对象编程)和AOP都是Java中的编程思想,相辅相成,OOP是基础,AOP是对OOP的补充。

区别:核心关注点不同——OOP关注“纵向”,比如一个用户模块,封装用户的属性和方法(增删改查),是按照业务模块划分的;AOP关注“横向”,比

文档评论(0)

1亿VIP精品文档

相关文档