我有我的身份验证类,我想在该类中获取某些需要EntityManager的类。该类仅在身份验证完成后才能工作。
我尝试在身份验证类中导入该类的bean。然后我尝试在Authentication类中初始化EntityManager。但是我没有那堂课想要的东西。我查看了AOP,并了解了@Around批注,该批注要求方法参数中包含“ ProceedingJoinPoint joinPoint”。但是由于我已经在Authentication类中实现了Filter类,所以无法覆盖我的过滤器类。我们可以为此解决一些问题吗?
答案 0 :(得分:1)
在AOP中,您需要用@Around
进行注释的方法不是要包装的方法,而是要在其周围“环绕”的方法(aspect方法)。方法中的joinPoint
参数代表您的“包装”方法,并告诉您何时执行该方法。
我认为最好是一个例子。 考虑以下简单的AOP方法,该方法在执行之前和之后打印:
这是方面类
@Around("execution(* testWrappedMethod(..))")
public void aopSample(ProceedingJoinPoint joinPoint) {
System.out.println("before");
joinPoint.proceed();// this will make the wrapped method execute
System.out.println("after");
}
这是“包装”方法:
public void testWrappedMethod(String whatever) {
System.out.println("inside");
}
testWrappedMethod
执行的输出将是:
之前
之后
内部