- Регистрация
- 19 Окт 2018
- Сообщения
- 26,137
- Баллы
- 0
Название: Наиболее востребованные технологии /инструменты / фреймворки 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. Создание каркаса приложения.
Spring ORM. Hibernate. JPA.
Тетсирование Rest контроллеров
Пароль: Open-Hide.biz
Автор: Григорий Кислин
Наиболее востребованные технологии /инструменты / фреймворки 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.
- 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
- Доработка 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
- Тестирование через JUnit.
- Интеграция Spring и JUnit.
- Подмена контекста при тестировании
- Группирование конфигурации Spring через import
- 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
- Имплементация 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 в проект
- Замена 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 в веб приложении. Задание активного профиля.
- Получение контекста Spring в веб-контейнере
- Вывод пользователей через сервлет.
- Добавление JSP и JSTL зависимостей. Вывод пользователей используя JSP/JSTL.
- Вставка фрагментов JSP. Форматирование через JSTL.
- Динамическое изменение профиля при запуске.
- Конфигурирование пула коннектов в Tomcat и jndi-lookup.
- Запуск Tomcat через tomcat7-maven-plugin. Конфигурирование плагина.
- Паттерн 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
- MockMvc. ResultMatcher.
- Добавляем Mockito и Hamcrest
- Реализация теста для UserController
Ресурсы:- Unit Testing of Spring MVC Controllers
- 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. Форматируем JSP.
- Подключаем Dandelion-Datatables.
- Создание таблиц на основе проекта Dandelion-Datatables. Форматирование.
Ресурсы:- Twitter Bootstrap Tutorial
- Javascript плагины для Bootstrap
- Подключение jQuery и jQuery notification.
- Событие $(document).ready. Запросы ajax. Обратный вызов success.
- Реализация удаления/редактирования на клиенте. Передача параметров через PUT
- Реализация удаления/редактирования в контроллере.
- Обработка ajaxError. Нотификация.
Ресурсы:- jQuery API
- jQuery notification plugin
- DataTables 1.9.4 API
- Добавляем в проект 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
- Добавление к тестам security фильтр.
- Авторизация в тестах по httpBasic
Ресурсы:- Тестирование контроллеров с помощью MockMvc
- Примеры использования spring-security-test
- Конфигурируем 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
- Анализ графа зависимостей.
- Добавляем datatables библиотеки как webjar.
- Переопределяем стандартные библиотеки JavaScript
- Добавляем Dandelion Bundle в JSP.
- Development и Production modes.
Ресурсы:- Dandelion configuration properties.
- Datatables configuration properties.
- Обновляем 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
- Getting Started with Spring MVC Hibernate on Heroku
- Конфигурирование DataSource profile для Heroku
- Конфигурирование приложения для запуска через Tomcat-based Java Web
- Интерграция с IDEA
Ресурсы:- Решение проблем с UTF-8
- Развертывание приложений Java с помощью PaaS от Heroku
Пароль: Open-Hide.biz
Скрытое содержимое. Вам нужно войти или зарегистрироваться.