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



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

public class MyService {


  • @SecurityAnnotation

  • public Balance getAccountBalance(User user) {

  • // ...

  • }


  • @SecurityAnnotation

  • public List getAccountTransactions(User user, Date date) {

  • // ...

  • }


  • }


  • Вызывающий код:

  • balance = myService.getAccountBalance(user);

  • if (balance == null) {

  • accessDenied(user);

  • } else {

  • displayBalance(balance);

  • }


  • Т.е. в вызывающем коде и целевом, проверка прав отсутствует, только непосредственно бизнес код.


  • Пример профилирование того же сервиса с использованием Advice типа Around


  • @Aspect

  • @Component

  • public class MyAspect {


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

  • public void callAtMyServicePublic() {

  • }


  • @Around("callAtMyServicePublic()")

  • public Object aroundCallAt(ProceedingJoinPoint call) throws Throwable {

  • StopWatch clock = new StopWatch(call.toString());

  • try {

  • clock.start(call.toShortString());

  • return call.proceed();

  • } finally {

  • clock.stop();

  • System.out.println(clock.prettyPrint());

  • }

  • }

  • }


  • Если запустить вызывающий код с вызовами методов MyService, то получим время вызова каждого метода. Таким образом не меняя вызывающий код и целевой я добавил новые функциональности: логирование, профайлер и безопасность.


  • Пример использование в UI формах


  • есть код который по настройке скрывает/показывает поля на форме:


  • 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 ©www.azkurs.org 2024
    rəhbərliyinə müraciət

    gir | qeydiyyatdan keç
        Ana səhifə


    yükləyin