[![Codacy Badge](https://app.codacy.com/project/badge/Grade/bee16f3145654047a0505c62aeefd8a2)](https://app.codacy.com/gh/JavaWebinar/topjava/dashboard) Java Enterprise Online Project =============================== Наиболее востребованные технологии /инструменты / фреймворки Java Enterprise: Maven/ Spring/ Security/ JPA(Hibernate)/ REST(Jackson)/ Bootstrap(CSS)/ jQuery + plugins. - [Вступительное занятие](https://github.com/JavaOPs/topjava) - [Описание и план проекта](https://github.com/JavaOPs/topjava/blob/master/description.md) - [Wiki](https://github.com/JavaOPs/topjava/wiki) - [Wiki Git](https://github.com/JavaOPs/topjava/wiki/Git) - [Wiki IDEA](https://github.com/JavaOPs/topjava/wiki/IDEA) - [Демо разрабатываемого приложения](http://javaops-demo.ru/topjava) ### 25.09: Старт проекта - Начало проверки [вступительного задания HW0](https://github.com/JavaOPs/topjava#-Домашнее-задание-hw0) #### 30.09 Дедлайн на сдачу HW0 ### 02.10: 1-е занятие - Разбор домашнего задания вступительного занятия (вместе с Optional) - Обзор используемых в проекте технологий. Интеграция ПО - Maven - WAR. Веб-контейнер Tomcat. Сервлеты - Логирование - Уровни и зависимости логгирования. JMX - Домашнее задание 1-го занятия (HW1 + Optional) ### 09.10: 2-е занятие - Разбор домашнего задания HW1 + Optional - Библиотека vs Фреймворк. Стандартные библиотеки Apache Commons, Guava - Слои приложения. Создание каркаса приложения - Обзор Spring Framework. Spring Context - Пояснения к HW2. Обработка Autowired - Домашнее задание (HW2 + Optional) ### 16.10: 3-е занятие - Разбор домашнего задания HW2 + Optional - Жизненный цикл Spring контекста - Тестирование через JUnit - Spring Test - Базы данных. Обзор NoSQL и Java persistence solution без ORM - Установка PostgreSQL. Docker - Настройка Database в IDEA - Скрипты инициализации базы. Spring Jdbc Template - Тестирование UserService через AssertJ - Логирование тестов - Домашнее задание (HW3 + Optional) ### 23.10: 4-е занятие - Разбор домашнего задания HW3 + Optional - Методы улучшения качества кода - Spring: инициализация и популирование DB - Подмена контекста при тестировании - ORM. Hibernate. JPA - Поддержка HSQLDB - Домашнее задание (HW4 + Optional) #### Начало выполнения [выпускного проекта](https://github.com/JavaOPs/topjava/blob/master/graduation.md) ### 30.10: 5-е занятие - Обзор JDK 9/17. Миграция Topjava с 1.8 на 17 - Разбор вопросов - Разбор домашнего задания HW4 + Optional - Транзакции - Профили Maven и Spring - Пул коннектов - Spring Data JPA - Spring кэш - Домашнее задание (HW5 + Optional) ### 06.11: 6-е занятие - Разбор домашнего задания HW5 + Optional - Кэш Hibernate - Spring Web - JSP, JSTL, internationalization - Динамическое изменение профиля при запуске - Конфигурирование Tomcat через maven plugin. Jndi-lookup - Spring Web MVC - Spring Internationalization - Домашнее задание (HW6 + Optional) #### Большое ДЗ + выпускной проект + начинаем [курс BootJava](https://javaops.ru/view/bootjava) + подтягиваем "хвосты". ### 20.11: 7-е занятие - Разбор домашнего задания HW6 + Optional - Автогенерация DDL по модели - Тестирование Spring MVC - Миграция на JUnit 5 - Принципы REST. REST контроллеры - Тестирование REST контроллеров. Jackson - jackson-datatype-hibernate. Тестирование через матчеры - Тестирование через SoapUi. UTF-8 - Домашнее задание (HW7 + Optional) ### 27.11: 8-е занятие - Разбор домашнего задания HW7 + Optional - WebJars. jQuery и JavaScript frameworks - Bootstrap - AJAX. Datatables. jQuery - jQuery notifications plugin - Добавление Spring Security - Домашнее задание (HW8 + Optional) ### 04.12: 9-е занятие - Разбор домашнего задания HW8 + Optional - Spring Binding - Spring Validation - Перевод DataTables на Ajax - Форма login / logout - Реализация собственного провайдера авторицазии - Принцип работы Spring Security. Проксирование - Spring Security Test - Cookie. Session - Домашнее задание (HW9 + Optional) ### 11.12: 10-е занятие - Разбор домашнего задания HW10 + Optional - Кастомизация JSON (@JsonView) и валидации (groups) - Рефакторинг: jQuery конверторы и группы валидации по умолчанию - Spring Security Taglib. Method Security Expressions - Интерсепторы. Редактирование профиля. JSP tag files - Форма регистрации - Обработка исключений в Spring - Encoding password - Миграция на Spring 5 - Защита от межсайтовой подделки запросов (CSRF) - Домашнее задание (HW10) ### 18.12: 11-е занятие - Разбор домашнего задания HW10 + Optional - Локализация datatables, ошибок валидации - Защита от XSS (Cross Site Scripting) - Обработка ошибок 404 (NotFound) - Доступ к AuthorizedUser - Ограничение модификации пользователей - Деплой приложения [на собственный выделенный сервер](https://github.com/JavaOPs/startup) - Домашнее задание (HW11): сокрытия полей в Swagger - Составление резюме. Собеседование. Разработка ПО. Возможные доработки приложения ### 22.12: Миграция на Spring-Boot 3.5 - Ревью вашего резюме - Основы Spring Boot. Spring Boot maven plugin - Lombok, база H2, ApplicationRunner - Spring Data REST + HATEOAS - Миграция приложения подсчета калорий на Spring Boot ### 12.01: Дедлайн на сдачу [выпускного проекта](https://github.com/JavaOPs/topjava/blob/master/graduation.md)