Я пытаюсь использовать AOP для регистрации входа / выхода методов. Однако я могу регистрировать только вход / выход методов, которые являются частью пакета, в котором находится класс Aspect. Я не могу войти в методы в другие пакеты. Пожалуйста, помогите. Спасибо заранее.
Вот мой код:
@Component
@Aspect
public class MyAspect {
@Before("execution(* com.dave.school.student..*(..))")
public void before(JoinPoint joinPoint)
{
System.out.println("Before::");
System.out.println(joinPoint.getSignature().getDeclaringTypeName() + "/" + joinPoint.getSignature().getName());
System.out.println(Arrays.toString(joinPoint.getArgs()));
}
@Before("execution(* com.dave.school.teachers..*(..))")
public void before1(JoinPoint joinPoint) //doesn't work
{
System.out.println("Before::");
System.out.println(joinPoint.getSignature().getDeclaringTypeName() + "/" + joinPoint.getSignature().getName());
System.out.println(Arrays.toString(joinPoint.getArgs()));
}
@AfterReturning(pointcut ="execution(* com.dave.school.student..*(..))",returning = "result")
public void after(JoinPoint joinPoint,Object result) throws JsonProcessingException {
System.out.println("After::");
System.out.println(joinPoint.getSignature().getDeclaringType().getName());
ObjectMapper objectMapper=new ObjectMapper();
String r=objectMapper.writeValueAsString(result);
System.out.println("Result is ::" + r );
}
}
Вот мое весеннее загрузочное приложение:
@SpringBootApplication(scanBasePackages = {"com.dave.school"})
@EnableJpaRepositories(basePackages = {"com.dave.school"})
@EntityScan(basePackages = {"com.dave.school"})
@ComponentScan(basePackages = {"com.dave.school"})
public class Application
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}