10-amaliy mashg’ulot. Aspektke-yo`naltirilgan dasturlash. Ishning maqsadi


public void callAtMyServiceAnnotation



Yüklə 100,61 Kb.
səhifə3/5
tarix24.12.2023
ölçüsü100,61 Kb.
#191065
1   2   3   4   5
10-amaliy mashg\'ulot

public void callAtMyServiceAnnotation() { }


  • Advice для него

  • @Before("callAtMyServiceAnnotation()")

  • public void beforeCallAt() { }


  • Запрос на конкретный метод с указанием параметров целевого метода

  • @Pointcut("execution(* com.example.demoAspects.MyService.method1(..)) && args(list,..))")

  • public void callAtMyServiceMethod1(List list) { }


  • Advice для него

  • @Before("callAtMyServiceMethod1(list)")

  • public void beforeCallAtMethod1(List list) { }


  • Pointcut для результата возврата

  • @Pointcut("execution(* com.example.demoAspects.MyService.check())")

  • public void callAtMyServiceAfterReturning() { }


  • Advice для него

  • @AfterReturning(pointcut="callAtMyServiceAfterReturning()", returning="retVal")

  • public void afterReturningCallAt(boolean retVal) { }




  • Пример проверки прав на Advice типа Around, через аннотацию



  • @Retention(RUNTIME)

  • @Target(METHOD)

  • public @interface SecurityAnnotation {

  • }

  • //

  • @Aspect

  • @Component

  • public class MyAspect {


  • @Pointcut("@annotation(SecurityAnnotation) && args(user,..)")

  • public void callAtMyServiceSecurityAnnotation(User user) { }


  • @Around("callAtMyServiceSecurityAnnotation(user)")

  • public Object aroundCallAt(ProceedingJoinPoint pjp, User user) {

  • Object retVal = null;

  • if (securityService.checkRight(user)) {

  • retVal = pjp.proceed();

  • }

  • return retVal;

  • }


  • Методы которые необходимо проверять перед вызовом, на право, можно аннотировать «SecurityAnnotation», далее в Aspect получим их срез, и все они будут перехвачены перед вызовом и сделана проверка прав.

    Целевой код:

  • @Service


  • Yüklə 100,61 Kb.

    Dostları ilə paylaş:
  • 1   2   3   4   5




    Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
    rəhbərliyinə müraciət

    gir | qeydiyyatdan keç
        Ana səhifə


    yükləyin