Презентация Spring Core. Spring AOP онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Spring Core. Spring AOP абсолютно бесплатно. Урок-презентация на эту тему содержит всего 34 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    34 слайда
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    766.77 kB
  • Просмотров:
    82
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Spring Core Spring AOP
Содержание слайда: Spring Core Spring AOP

№2 слайд
AOP Пример Рассмотрим метод
Содержание слайда: AOP :: Пример Рассмотрим метод получения пользователя по id: public class UserService { public UserDTO getUser(Integer id) {  return userDAO.getUser(id); } }

№3 слайд
AOP Пример Рассмотрим метод
Содержание слайда: AOP :: Пример Рассмотрим метод получения пользователя по id: public class UserService { public UserDTO getUser(Integer id) {  return userDAO.getUser(id); } } Добавим логгирование: public UserDTO getUser(Integer id) {  log.debug("Call method getUser with id " + id); UserDTO user = userDAO.getUser(id);   log.debug("User info is: " + user.toString()); return user; }

№4 слайд
AOP Пример Добавим обработку
Содержание слайда: AOP :: Пример Добавим обработку исключений: public UserDTO getUser(Integer id) throws ServiceException{ log.debug("Call method getUser with id " + id); UserDTO user = null;    UserDTO user = userDAO.getUser(id); try { user = userDAO.getUser(id); } catch(SQLException e) { throw new ServiceException(e); } log.debug("User info is: " + user.toString());   return user; }

№5 слайд
AOP Пример Добавим проверку
Содержание слайда: AOP :: Пример Добавим проверку прав пользователя: public UserDTO getUser(Integer id) throws ServiceException, AuthException{ if (!SecurityContext.getUser().hasRight("getUser")) { throw new AuthException("Permission Denied"); } log.debug("Call method getUser with id " + id); UserDTO user = null;    UserDTO user = userDAO.getUser(id); try { user = userDAO.getUser(id); } catch(SQLException e) { throw new ServiceException(e); } log.debug("User info is: " + user.toString());   return user; }

№6 слайд
AOP Пример Добавляем
Содержание слайда: AOP :: Пример Добавляем кэширование результатов работы: public UserDTO getUser(Integer id) throws ServiceException, AuthException { … try { if (cache.contains(cacheKey)) { user = (UserDTO) cache.get(cacheKey); } else { user = userDAO.getUser(id); cache.put(cacheKey, user); } } catch(SQLException e) { throw new ServiceException(e); } log.debug("User info is: " + user.toString());   return user; }

№7 слайд
AOP Пример Что мы получаем
Содержание слайда: AOP :: Пример Что мы получаем: Большой объем сервисного кода Вместо одной строки мы получили 16. И это количество продолжает расти... Виды ортогональной функциональности Логгирование Обработка исключений Транзакции Кэширование Проверка прав пользователя и многое другое... Минусы сервисного кода в основном коде: Растет объем кода Сложнее поддерживать Дублирование кода Решение: использовать аспекты Вынести ортогональную функциональность в отдельные классы – аспекты

№8 слайд
Как работают аспекты
Содержание слайда: Как работают аспекты

№9 слайд
AOP Введение Aspect Oriented
Содержание слайда: AOP :: Введение Aspect Oriented Programming (AOP) – аспектно-ориентированное программирование АОП предоставляет средства для реализации ортогональной (crosscutting) функциональности

№10 слайд
AOP Введение Как
Содержание слайда: AOP :: Введение Как «ортогональную» бизнес-логику можно реализовать в СУРБД?

№11 слайд
AOP Введение Пример
Содержание слайда: AOP :: Введение Пример ортогонального логгирования с использованием триггеров СУРБД: /* Триггеры на уровне таблицы */ CREATE OR REPLACE TRIGGER DistrictUpdatedTrigger AFTER UPDATE ON district BEGIN INSERT INTO info VALUES ('table "district" has changed'); END;

№12 слайд
AOP Пример адвайса
Содержание слайда: AOP :: Пример адвайса логгирования @Aspect public class LoggingAspect { private Logger logger = Logger.getLogger(LoggingAspect.class.getName()); @Around("execution(* *.*User(..))") public Object log (ProceedingJoinPoint thisJoinPoint) throws Throwable { String methodName = thisJoinPoint.getSignature().getName(); Object[] methodArgs = thisJoinPoint.getArgs(); logger.info("Call method " + methodName + " with args " + methodArgs); Object result = thisJoinPoint.proceed(); logger.info("Method " + methodName + " returns " + result); return result; } }

№13 слайд
AOP Пример адвайса
Содержание слайда: AOP :: Пример адвайса логгирования <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <aop:aspectj-autoproxy/> <bean id="userDao" class="UserDaoImpl"/> <bean id="loggingAspect" class = "LoggingAspect"/> </beans>

№14 слайд
AOP Пример адвайса
Содержание слайда: AOP :: Пример адвайса логгирования public interface UserDao { UserDTO getUser(int id); } public class UserDaoImpl implements UserDao { public UserDTO getUser(int id) { if (null != userDaoMap.get(id)) { return userDaoMap.get(id); } UserDTO user = new UserDTO(id); userDaoMap.put(id, user); return user; } }

№15 слайд
AOP Пример
Содержание слайда: AOP :: Пример

№16 слайд
AOP Введение Работа с DAO без
Содержание слайда: AOP :: Введение Работа с DAO без IoC и AOP Работа с DAO с IoC, но без AOP

№17 слайд
AOP Введение Работа с DAO с
Содержание слайда: AOP :: Введение Работа с DAO с IoC и AOP

№18 слайд
AOP Введение Работа с DAO с
Содержание слайда: AOP :: Введение Работа с DAO с IoC и AOP

№19 слайд
AOP Введение
Содержание слайда: AOP :: Введение

№20 слайд
AOP Основные понятия
Содержание слайда: AOP :: Основные понятия

№21 слайд
Активация AOP Weaving
Содержание слайда: Активация AOP Weaving (связывание) – процесс применения аспекта к целевому объекту для создания нового прокси-объекта. Для осуществления связывания использует две дополнительные зависимости: aspectjrt.jar aspectjweaver.jar Также необходимо инициировать создание динамических прокси в файле конфигурации: <aop:aspectj-autoproxy />

№22 слайд
AOP Язык срезов pointcut
Содержание слайда: AOP :: Язык срезов (pointcut)

№23 слайд
AOP Язык срезов pointcut
Содержание слайда: AOP :: Язык срезов (pointcut)

№24 слайд
AOP Срез
Содержание слайда: AOP :: Срез

№25 слайд
AOP типы адвайсов Around
Содержание слайда: AOP :: типы адвайсов @Around advice – выполняется перед и после joinpoint Самый мощный из всех адвайсов @Around("@annotation(com.luxoft.springaop.example2.Log)") public Object log (ProceedingJoinPoint thisJoinPoint) throws Throwable { String methodName = thisJoinPoint.getSignature().getName(); Object[] methodArgs = thisJoinPoint.getArgs(); logger.info("Call method " + methodName + " with args " + methodArgs); Object result = thisJoinPoint.proceed(); logger.info("Method " + methodName + " returns " + result); return result; }

№26 слайд
Примеры использования AOP
Содержание слайда: Примеры использования AOP Логгирование Проверки безопасности Управление транзакциями Обработка исключений Проверка прав пользователя Профилирование

№27 слайд
AOP группировка аспектов
Содержание слайда: AOP :: группировка аспектов

№28 слайд
AOP Комбинирование срезов
Содержание слайда: AOP :: Комбинирование срезов

№29 слайд
AOP Типы адвайсов Может
Содержание слайда: AOP :: Типы адвайсов Может решать, исполнять ли joinpoint или вернуть собственное значение: @Around("com.luxoft.example.SystemArchitecture.businessService()") public Object accessRightsCheck(ProceedingJoinPoint pjp) throws Throwable { if (currentUser.hasRights()) { return pjp.proceed(); } else { throw new AuthorizationException(); } return null; }

№30 слайд
AOP Использование
Содержание слайда: AOP :: Использование @AfterThrowing @Aspect public class AfterThrowingExample { @AfterThrowing( pointcut="com.luxoft.example.SystemArchitecture.dataAccessOperation()", throwing="ex") public void doRecoveryActions(DataAccessException ex) { // ... } } Нет возможности вернуться к вызываемому методу или продолжить обработку на следующей строке Если здесь обрабатывается исключение, это не помешает ему «всплыть» в цепи

№31 слайд
AOP Обзор типов адвайсов
Содержание слайда: AOP :: Обзор типов адвайсов @Before – выполняется перед joinpoint Вызов joinpoint можно отменить, только выдав исключение @Around – выполняется перед и после joinpoint @AfterReturning – после успешного выполнения joinpoint, например, когда метод выполнился, не выдав исключение @AfterThrowing – в случае выдачи исключения в joinpoint @After – в любом случае после выполнения joinpoint

№32 слайд
AOP Выстраивание цепочки
Содержание слайда: AOP :: Выстраивание цепочки аспектов

№33 слайд
AOP Order Порядок выполнения
Содержание слайда: AOP :: @Order Порядок выполнения аспектов можно задать с помощью аннотации @Order: @Aspect @Order(1) public class AspectA { @Before("............") public void doIt() {} } @Aspect @Order(2) public class AspectB { @Before(".............") public void doIt() {} } Порядок адвайсов в аспекте определяется его порядком в исходном коде аспекта.

№34 слайд
Упражнение
Содержание слайда: Упражнение

Скачать все slide презентации Spring Core. Spring AOP одним архивом: