介绍
如您所知,AOP是Spring框架提供的最好的功能之一,它在实现跨领域关注的同时提供了最大的灵活性。 您是否想到过AOP在Spring如何工作? 有时这是高级技术面试时要问的问题。 有时,仅涉及核心Java时,这个问题变得更加重要。 最近,我的一位朋友去参加采访,他面临一个尴尬的问题,即如何仅在核心Java中使用AOP而无需使用Spring和相关库。 在本文中,我将为您提供有关如何仅在具有某些限制的情况下仅在核心Java中创建自己的AOP的概述。 这不是Spring AOP和Java AOP之间的比较研究。 但是,您可以使用适当的设计模式在一定程度上用Java实现AOP。
大家都知道AOP以及如何使用Spring框架使用AOP,本文将使您深入了解不使用Spring就能在Java中实现AOP的方法。 作为参考,Spring使用JDK代理和CGlib来提供AOP实现。 JDK动态代理提供了一种灵活的方法来挂钩方法并以一定的限制执行某些操作。 限制是应该有一个接口,并且应该有该接口的实现。 到目前为止,还不清楚。 让我们举个例子。 我们有一个计算器,通过它我们可以执行一些数学运算。 让我们考虑用一个数字除以另一个数字。 现在的问题是有人已经在核心框架中提供了除法运算的实现,是否有可能在该方法中进行劫持以执行额外的验证? 是的。 为此,我在下面的代码片段中提供了这种简单的情况。 基本的抽象代码如下。
public interface Calculator {
p