[григорий Кислин] Наиболее Востребованные Технологии /инструменты / Фреймворки Java

  • Автор темы sveta krasota
  • 26
  • Обновлено
  • 09, Apr 2023
  • #1
Название:Наиболее востребованные технологии /инструменты / фреймворки Java Автор:Григорий Кислин

Наиболее востребованные технологии /инструменты / фреймворки Java: Maven/ Spring/ Security/ JPA(Hibernate)/ Rest(Jackson)/ Bootstrap(CSS)/ jQuery + plugins



На тренинге последовательно разрабатывается полнофункциональное Spring приложение c авторизацией и правами доступа на основе ролей, используя инструменты/ библиотеки/ фреймворки: Maven, Spring Security, Spring MVC, Spring Data JPA, Spring Security Test, Hibernate ORM, Hibernate Validator, SLF4J, Json Jackson, JSP, JSTL, Apache Tomcat, WebJars, Dandelion DataTables, Ehcache, PostgreSQL, HSQLDB, JUnit, Hamcrest, Mockito, JsonPath, jQuery, Jeditable, jQuery notification, Bootstrap.

  • Основное внимание будет уделяться способам решения многочисленных проблем разработки в Spring, а также структурному (красивому и надежному) java кодированию и архитектуре приложения.


  • Каждое занятие в закрепляется домашним заданием по реализации схожей функциональности. Следующее занятие начинается с разбора домашних заданий.


Описание далее
  • Обзор используемых на вебинаре технологий. Интеграция ПО.
  • Системы управления версиями
  • Maven
  • Логгирование
  • Архитектура приложения Spring. Создание каркаса приложения
  • Обзор Spring Framework. Spring Context
  • Тестирование. Spring Test
  • Базы данных. Spring JDBC
  • Spring ORM. JPA. Hibernate. Конфигурирование доменной модели
  • Реализация через JPA. Транзакции
  • Насторойка пула коннектов
  • Spring Data JPA
  • Кэширование
  • Spring Web. Конфигурирование Tomcat
  • Spring Web MVC
  • Тестирование Spring MVC
  • Реализация Rest API
  • Тетсирование Rest контроллеров
  • WebJars. Bootstrap. Dandelion-Datatables
  • AJAX. jQuery.
  • Spring Security
  • Spring Security Test
  • Авторизация/ регистрация. JSP based tag.
  • Dandelion Bundle. Настройка библиотек JavaScript.
  • Работа с Dandelion Datatables через Ajax.
  • Обработка исключений
  • Деплой в PaaS-платформу Heroku
  • Ресурсы


Обзор используемых на вебинаре технологий. Интеграция ПО.
  • Библиотека vs Фреймворк. Стандартные библиотеки Apache Commons, Guava
  • Обзор популярности инструментов и технологий Java за 2014 г.
  • Приложение Spring Pet Clinic. Demo
  • По следам Spring Pet Clinic. Maven/ Spring Context/ Spring Test/ Spring ORM/ Spring Data JPAs
  • Интеграция ПО с IntelliJ IDEA


Системы управления версиями
  • Распределённые системы управления версиями. Git.


Maven.
  • Среда сборки проектов Maven.
  • The Central Repository
  • Maven archetype. Создание проекта на основе maven-archetype-webapp. Сборка проекта.
  • Настройка пропертей Maven: кодировка, java version, зависимости, maven-compiler-plugin
  • Build Lifecycle.
  • Dependency Mechanism
  • Зависимости, профили
  • The Reactor. Snapshots
  • Недостатки Maven. Другие инструменты сборки.
  • Веб-контейнер Tomcat. Деплой в Tomcat и динамическое обновление.



  • Ресурсы:
  • Maven: The Complete Reference
  • Автоматизация сборки проекта
  • Repository management Nexus
  • Appfuse project (archetype appfuse)
  • Bintray: gateway to Maven Central


Логгирование.
  • Системы логгирования: java.util.logging, common-logging,Logback, SLF4J, Log4J. Ведение лога приложения
  • Добавление зависимостей логгирования в проект.
  • Log4j vs Logback. Анализ зависимостей проекта.
  • Конфигурирование логгирования. Создание обертки логгирования. Настройка Live Template.
  • Интеграция IDEA с Tomcat, деплой.
  • Тестирование логирования в сервлете. Переменная окружения TOPJAVA_ROOT.
  • Управление логгированием по JMX.
  • Контекст приложения. Деплой в Tomcat без IDE. Remote debug.


Архитектура приложения Spring. Создание каркаса приложения.
  • Архитектурные слои приложения в Spring
  • Инверсия управления.DI/ Service Locator
  • Доменная модель приложения
  • Паттерн DTO. Value Object и Data Transfer Object
  • Паттерны Repository и DAO
  • Разбиение на пакеты по слоям и бизнес логике. Создание каркаса приложения.



  • Ресурсы:
  • Паттерн "Слои приложения".
  • Справочник «Паттерны проектирования»
  • Catalog of Patterns of Enterprise Application Architecture


Обзор Spring Framework. Spring Context.
  • Доработка API
  • Проекты Spring. Spring Roo
  • Обзор Spring Framework
  • Добавление Spring в проект. Контекст Spring-а. BeanFactory. Запуск ApplicationContext. BeanDefinitionNames
  • Инжекция через аннотации. Required. JSR 250. PostConstruct/ PreDestroy.
  • Сканирование компонентов. Стереотипы.
  • Spring изнутри. Этапы инициализации контекста.



  • Ресурсы:
  • Евгений Борисов. Spring, часть 1
  • Евгений Борисов. Spring, часть 2
  • Презентация Spring framework core
  • Introduction to the Spring IoC container and beans
  • Обзор Spring Roo
  • Getting Started
  • Spring Framework Reference Documentation
  • Spring на GitHub


Тестирование. Spring Test.
  • Тестирование через JUnit.
  • Интеграция Spring и JUnit.
  • Подмена контекста при тестировании
  • Группирование конфигурации Spring через import


Базы данных. Spring JDBC
  • NoSQL or RDBMS.Обзор NoSQL систем. CAP
  • Обзор Java persistence solution без ORM: commons-dbutils, Spring JdbcTemplate, MyBatis
  • Скрипты инициализация базы
  • Тестирование используя in-memory HSQLDB. Преимущества/недостатки
  • Профили Spring
  • Настройка Database в IDEA и запуск SQL.
  • Подключение Spring Jdbc.
  • Конфигурирование DataSource. property-placeholder. Профили Spring
  • Инициализация базы при старте приложения
  • JdbcTemplate. Имплементация JdbcUserRepository
  • Подготовка тестовых данных для UserServiceTest
  • Инициализация базы из java. Абстракция Resource
  • Имплементация equals/hashCode. Тестирование UserService
  • Починка UserAdminRestTest: mock конфигурация.


Spring ORM. Hibernate. JPA.
  • ORM. Mapping. Описания модели Hibernate (hbm.xml/annotation)
  • Hibernate. Другие ORM: TopLink, ElipseLink, EBean (used in Playframework).
  • JPA. JPA Performance Benchmark
  • Подключение к проекту Spring ORM и Hibernate
  • Отображения наследования объектов на таблицы
  • Стратегии генерации PK
  • Добавление hibernate-validator. JSR-303 -> JSR-349
  • Описание связей в модели. Ленивая загрузка объекта.
  • Конфигурирование JPA. Сканировние Entities. JPA definitions
  • Выражения в конфигурации
  • Создание JPA Facet. Назначение DataSource.



  • Ресурсы:
  • Java Persistence
  • Hibernate


Реализация работы с DB через JPA. Транзакции.
  • Имплементация JpaUserRepository через EntityManagerFactory/ SessionFactory
  • Использование TypedQuery и @NamedQuery. Назначение параметров по индексу и имени.
  • HQL/ JPQL. ER Diagram/ DB Diagrem. JPA/ Hibernate Console.
  • JPA Criteria API. Unified Queries for Java
  • Тестирование через наследование.
  • Транзакция. ACID. Уровни изоляции транзакций. MVCC
  • Подключаем транзакции. Spring Transaction Management
  • Стратегии использования @Transactional в слоях Repository/Service
  • Использования @Transactional для тестов. Влияние в тестах @Transactional и debug.
  • readOnly и Propagation.SUPPORTS
  • Обновление схемы DB по доменной модели



  • Ресурсы:
  • Стратегии работы с транзакциями: Распространенные ошибки
  • Принципы работы СУБД. MVCC


Насторойка пула коннектов.
  • Выбор реализации пула коннектов: BoneCP, Commons Database Connection Pooling, Tomcat pool
  • Добавление tomcat-jdbc в проект


Spring Data JPA
  • Замена AbstractDAO: JPA Repositories.
  • Разрешение зависимостей: Maven BOM [Bill Of Materials] Dependency
  • Стратегия проксирование Repository.
  • Делегирование. @Modifying/ @Query/ @Transactional
  • Выполнение @Query через @NamedQuery.
  • Оптимизация зависимостей проекта



  • Ресурсы:
  • Spring Data JPA Tutorial
  • Spring Data JPA with QueryDSL
  • Spring Data – новый взгляд на persistence (видео с JeeConf)


Кэширование
  • Кеширование в Spring Framework
  • Починка теста: инвалидация кэша
  • Починка JUnit: один кэш на JVM
  • Уровни кэширования Hibernate
  • Подключение кэша Hibernate 2-го уровня
  • JPA2 @Cacheable vs Hibernate @Cache
  • Починка тестов: инвалидация кэша Hibernate



  • Ресурсы:
  • Распределённая система кеша ehcache
  • Spring cache Abstraction
  • Ehcache with Hibernate
  • Cache annotation attributes
  • Hibernate Cache. Практика


Spring Web. Конфигурирование Tomcat
  • Добавляем в проект веб зависимости
  • Поднятие контекста Spring в веб приложении. Задание активного профиля.
  • Получение контекста Spring в веб-контейнере
  • Вывод пользователей через сервлет.
  • Добавление JSP и JSTL зависимостей. Вывод пользователей используя JSP/JSTL.
  • Вставка фрагментов JSP. Форматирование через JSTL.
  • Динамическое изменение профиля при запуске.
  • Конфигурирование пула коннектов в Tomcat и jndi-lookup.
  • Запуск Tomcat через tomcat7-maven-plugin. Конфигурирование плагина.


Spring Web MVC
  • Паттерн Front Controller
  • Добавляем DispatcherServlet и MVC application context. Иерархия контекстов в Spring Web MVC
  • Сценарий обработки запроса. HandlerMappings
  • View resolving: прячем jsp под WEB-INF.
  • Имплементируем UserController. Паттерн MVC.
  • Маппинг ресурсов. Поиск причины поломки приложения. Default DispatcherServlet Configuration
  • HandlerMapping: SimpleUrlHandlerMapping, RequestMappingHandlerMapping, BeanNameUrlHandlerMapping
  • Локализация. ResourceBundleMessageSource/ ReloadableResourceBundleMessageSource. Вынесение локализации во внешний каталог.



  • Ресурсы:
  • Spring MVC Tutorial
  • Web MVC framework
  • Special bean types in the WebApplicationContext


Тестирование Spring MVC
  • MockMvc. ResultMatcher.
  • Добавляем Mockito и Hamcrest
  • Реализация теста для UserController



  • Ресурсы:
  • Unit Testing of Spring MVC Controllers


Реализация Rest API
  • JAX-RS vs Spring MVC
  • Добавление маппинга запросов в методы контроллеров
  • 406-not-acceptable. Подключение JSON (Jackson).
  • Настройка сериализации JSON. Тестирование через SoapUi.
  • Сериализации hibernate lazy-loading с помощью jackson-datatype-hibernate
  • Глобальные настройки в HibernateAwareObjectMapper.
  • Решение проблемы с UTF-8 в StringHttpMessageConverter


Тетсирование Rest контроллеров
  • Добавляем JSON Path
  • Добавляем JSON Util.
  • Дополняем mockito: Json Matcher-ы. Завершение имплементации тестов.



  • Ресурсы:
  • Unit Testing of Spring MVC Controllers: REST API


WebJars. Bootstrap. Dandelion-Datatables.
  • Подключение веб ресурсов. WebJars.
  • Подключаем Bootstrap. Форматируем JSP.
  • Подключаем Dandelion-Datatables.
  • Создание таблиц на основе проекта Dandelion-Datatables. Форматирование.



  • Ресурсы:
  • Twitter Bootstrap Tutorial
  • Javascript плагины для Bootstrap


AJAX. jQuery.
  • Подключение jQuery и jQuery notification.
  • Событие $(document).ready. Запросы ajax. Обратный вызов success.
  • Реализация удаления/редактирования на клиенте. Передача параметров через PUT
  • Реализация удаления/редактирования в контроллере.
  • Обработка ajaxError. Нотификация.



  • Ресурсы:
  • jQuery API
  • jQuery notification plugin
  • DataTables 1.9.4 API


Spring Security
  • Добавляем в проект spring-security и security filter
  • Конфигурируем security context для ресурсов и REST
  • Тестируем REST через SoapUI
  • Доступ к залогиненному пользователю из приложения
  • Реализуем JDBC-based UserDetailsService
  • Принцип работы Spring Security
  • Реализация собственного провайдера авторицазии. Наследование UserDetailsService, UserDetails, GrantedAuthority
  • Чиним DI сервиса: типы проксирования
  • Разрешаем конфликт проксирования на уровне Data Repository
  • Кодируем пароль: BCryptPasswordEncoder. Тестирование пароля.
  • Security фильтры



  • Ресурсы:
  • Краткий обзор Spring Security
  • spring security slideshow
  • Spring security documentation


Spring Security Test
  • Добавление к тестам security фильтр.
  • Авторизация в тестах по httpBasic



  • Ресурсы:
  • Тестирование контроллеров с помощью MockMvc
  • Примеры использования spring-security-test


Авторизация/ регистрация. JSP based tag.
  • Конфигурируем security контекст: login/logout. Добавляем контроллер.
  • Добавляем login.jsp, css
  • Кастомизация заголовка: Spring Security Taglib
  • Добавляем профиль в заголовок: Handler interceptor и intercept-url.
  • Method Security и Method Security Expressions. Зависимость конфигурирования от контекста mvc/parent.
  • Добавляем контроллер профиля и jsp.
  • Форма регистрации.Cвязывание и валидация.
  • Делаем jsp tag для ввода поля формы.
  • Реализуем обработку формы профиля в контроллере.
  • Решение проблем с кодировкой: CharacterEncodingFilter


Dandelion Bundle. Настройка библиотек JavaScript.
  • Анализ графа зависимостей.
  • Добавляем datatables библиотеки как webjar.
  • Переопределяем стандартные библиотеки JavaScript
  • Добавляем Dandelion Bundle в JSP.
  • Development и Production modes.



  • Ресурсы:
  • Dandelion configuration properties.
  • Datatables configuration properties.


Работа с Dandelion Datatables через Ajax.
  • Обновляем JSP списка пользователей.
  • Порядок инициализации. jQuery onLoad и Datatables callbacks.
  • Кастомизация конфигурации таблицы.
  • Плагин Jeditable
  • Создание виджетов на стороне клиента. Обновление данных после ответа сервера. Обработка ошибок.
  • Рафакторинг контроллера.
  • Починка update: транзакционность и разделение логики по слоям.
  • Jeditable: How to use selects
  • Кастомерный Jeditable тип: Datepicker
  • Перевод на AJAX списка дел.
  • Вставка новой записи.



  • Ресурсы:
  • DataTables v1.9 API
  • Расширение Jeditable плагина.
  • Custom input types


Обработка исключений.
  • Используем HTTP status code
  • Exception Handling на уровне контроллера
  • Проблемы с JSP 2.3/ JSR-245/ Tomcat 8 bug issues
  • Глобальное конфигурирование через @ControllerAdvice
  • Сериализация Exception в JSON


Деплой в PaaS-платформу Heroku
  • Getting Started with Spring MVC Hibernate on Heroku
  • Конфигурирование DataSource profile для Heroku
  • Конфигурирование приложения для запуска через Tomcat-based Java Web
  • Интерграция с IDEA



  • Ресурсы:
  • Решение проблем с UTF-8
  • Развертывание приложений Java с помощью PaaS от Heroku


-
Скачать:
Скрытая информация :: Авторизуйтесь для просмотра »

Пароль: Open-Hide.biz

sveta krasota


Рег
01 Mar, 2011

Тем
1

Постов
1

Баллов
11
Тем
49554
Комментарии
57426
Опыт
552966