4.55 из 5
4.55
92 отзыва

Web приложение – My Resume на базе фреймворка Spring

Изучение Spring (Core, MVC, Data, Security) + Hibernate для создания web приложения по созданию резюме Java разработчика
Автор курса:
DevStudy .net
576 студентов зачислены
Проектировать и создавать реляционные базы данных;
Использовать шаблон MVC для создания web системы любой сложности;
Разбивать вашу будущую системы на отдельные модули с четким разграничением ответственности для каждого модуля и управлять зависимостями с помощью Spring IoC контейнера;
Использовать возможности Spring MVC и Spring Data для быстрой разработки web приложений;
Использовать Spring Data для построения абстрактных репозиториев с возможностью быстро изменить тип хранилища с наименьшими затратами;
Использовать декларативное управление транзакциями и возможности аспектно-ориентированного программирования;
Контролировать доступ к отдельным модулям Вашего приложения с помощью Spring Security;
Писать чистый и понятный другому программисту код;
Интегрировать социальные сервисы в Ваш проект;
Защищать свое web приложение от общеизвестных атак и уязвимостей;
Писать производительные приложения и быстро находить узкие места в вашем приложении;
Загружать Ваш проект на хостинг с последующим предоставлением доступа Вашим клиентам;
Использовать основные правила масштабирования Вашего приложения при необходимости увеличить число клиентов.

В рамках данного курса будет написано Web приложение My Resume с использованием Java технологий: Spring Core, String MVC, Spring Data JPA, Hibernate, Spring Security, Sitemesh, Spring Data ElasticSearch, JSP, JSTL, Hibernate-Validators, Facebook API, Spring Data Mongo.

Пользовательский интерфейс построен с использованием HTML5, CSS3, Bootstrap, JQuery.

Для долговременного хранения данных будут использованы PostgresSQL и MongoDb. Таким образом проект будет изначально написан для работы с PostgresSQL, а затем портирован на MongoDb.

Курс состоит из 22 уроков. Каждый урок состоит из теоретического обзора технологии, примера ее использования в данном проекте и домашнего задания. В начале следующего урока поясняется каким образом нужно было выполнить домашнее задание и рассматривается новая тема.

На последних уроках выполняется полный обзор разработанного проекта и комментирование обязанностей каждого компонента в проекте. Таким образом учащийся имеет возможность рассмотреть эталонный код проекта и получить ответы на возможные вопросы, которые возникли у него при разработке приложения. Таким образом данный курс предоставляет Вам возможность самостоятельно разработать проект и сравнить его с эталонной реализацией в конце курса, чтобы не ограничивать Вас в реализации проекта эталонной реализацией в конце каждого урока. Такой подход позволяет максимально эффективно изучить выбранные технологии, но требует от учащегося хороших базовых знаний и опыта работы в JEE.

Работая над проектом Вы освоите не только разработку приложений на Java, но и как правильно составлять резюме разработчика: Одним выстрелом – двух зайцев!

Для получения дополнительной информации по теме данного курса, рекомендуем следующие источники информации:

  • PostgreSQL документация

  • Spring документация

  • JPA спецификация

  • Spring Data JPA документация

  • Spring Data Mongo DB документация

  • Spring Data ElasticSearch документация

  • Spring Security документация

  • Крис Шефер, Кларенс Хо, Роб Харроп, Spring 4 для профессионалов (Pro Spring) – М.:Вильямс, 2016 – 752 с. – ISBN 978-5-8459-1992-2

  • Роберт Мартин, Чистый код: создание, анализ и рефакторинг – СПб.:Питер, 2010. – 464 с. – ISBN 978-5-49807-381-1

  • Сергей Моренец, Разработка Java приложений – Книга 1

  • Сергей Моренец, Разработка Java приложений – Книга 2

Подготовка к разработки

1
Дополнительные ресурсы для курса
2
Настройка окружения и обзор архитектуры будущего приложения
  1. Настройка окружения:

    1. FireFox - HTML браузер (https://www.mozilla.org/en-US/firefox/new/);

    2. Firebug - плагин для FireFox, который позволяет просматривать структуру страницы и параметров HTTP запросов (http://getfirebug.com/);

    3. JDK 1.7 и настройка JAVA_HOME (http://www.oracle.com/technetwork/java/javase/downloads/index.html);

    4. Tomcat 8.0 и запуск в debug режиме (https://tomcat.apache.org/);

    5. Postgresql 9.5.0 - сервер базы данных (http://www.postgresql.org/download/);

    6. PgAdmin - админпанель для работы с Postgresql;

    7. SQL Manager Postgres - SQL клиент для работы с сервером Postgresql (http://www.sqlmanager.net/en/products/postgresql/manager);

    8. Eclipse Mars - IDE для разработки на Java (http://www.eclipse.org/downloads);

    9. Git for windows - инструмент системы контроля версий Git for windows (https://git-scm.com/download/win).

  2. Постановка задачи - разработка web приложения по составлению резюме

  3. Обзор архитектуры - использование шаблона MVC для проекта и определение правил взаимодействия между компонентами

  4. Создание Maven проекта в Eclipse для данной системы, определение структуры проекта и загрузка кода на github

  5. Напоминание возможностей Servlet, Listener, Filter, JSP компонентов для данного проекта

  6. Запуск Tomcat в отладочном режиме и отладка web приложений

  7. Основные правила передачи управления между Servlet, Filter и JSP при использовании MVC шаблона

3
Основные возможности реляционных баз данных. SQL.
  1. Обзор все UI макетов, которые необходимы для разработки данного проекта

  2. Обзор основных объектов реляционной базы данных: таблицы, индексы, проверки, представления, материализованное представления, последовательности, функции, процедуры, триггеры, пользовательские типы данных, пакеты и схемы, пользователи и привилегии

  3. DDL, DML, SELECT, Transactions. (Для более глубокого изучения SQL рекомендуем курс Основы SQL (https://www.udemy.com/basic-sql))

  4. Пример проектирование базы данных для отдельного тестового проекта

4
Создание HTML шаблона с помощью Bootstrap
  1. Проектирование базы данных для проекта My Resume, обзор основных таблиц и связей между ними (Выполнение домашнего задания прошлого урока)

  2. Создание генератора тестовых данных для проекта (Выполнение домашнего задания прошлого урока)

  3. Скачивание и настройка Bootstrap, JQuery и FontAwesome для проекта

  4. Обзор Bootstrap Grid System (Для более глубокого изучения HTML, CSS и Bootstrap рекомендуем курс: Макет интернет магазина - IShop (https://www.udemy.com/web-ishop/))

  5. Создание странички отображение профиля с помощью bootstrap

Разработка web приложения

1
Шаблонизация и декомпозиция уровня представления
  1. Проблема дублирования и сложности кода представления и ее решение с помощью шаблонизации и декомпозиции

  2. Обзор возможностей SiteMesh3

  3. Пример декомпозиции страницы профиля пользователя с помощью тегов и jsp include

2
Основы Spring Core: Spring IoC container
  1. Декомпозиция странички профиля для проекта (Выполнение домашнего задания прошлого урока)

  2. Архитектура Spring IoC

  3. Spring Configurations: XML, Annotation, Java

  4. Bean scopes

  5. Lifecycle callbacks

  6. Aware interfaces

  7. FactoryBean

  8. Spring Annotations

  9. BeanFactory vs ApplicationContext

  10. Spring Resources

  11. Пример конфигурации Spring для проекта

3
Основы Spring MVC для веб приложения
  1. Основы Spring MVC

  2. DispatcherServlet и его конфигурирование в web.xml или WebApplicationInitializer

  3. Конфигурация основных компонентов Spring MVC

  4. @Controller и @RequestMapping

  5. View resolvers

  6. Handling exceptions

  7. Interceptors

  8. Spring MVC Resources

  9. Пример использования Spring MVC для проекта

  10. Демонстрация работы Spring MVC в проекте

4
ORM, JPA, SpringData
  1. Основы Java ORM

  2. Стандарт JPA

  3. Требования к Entity

  4. Persistent Fields vs Persistent Properties

  5. Простые и составные ключи

  6. Обзор основных аннотаций JPA

  7. Inheritance Mapping Strategies

  8. Отношения в Entities и загрузка дочерних объектов

  9. JPA архитектура

  10. Основные методы EntityManager

  11. Entity Lifecycle Management

  12. JPQL & Query интерфейс

  13. Основы Spring Data

  14. Примеры создания динамических репозиториев с помощью Spring Data JPA

  15. Spring Data Magic and Supported keywords inside method names

  16. Пример использования Spring Data + JPA Hibernate в проекте

  17. Демонстрация работы Spring Data + JPA Hibernate в проекте

  18. Решение проблемы LazyInitializationException

5
Основы обработки HTML форм с помощью Spring
  1. Создание всех классов сущностей для проекта (Выполнение домашнего задания прошлого урока)

  2. Основы обработки HTML форм. Использование @ModelAttribute

  3. Обработка multipart форм с помощью Spring MVC

  4. Отображение html формы на JSP

  5. Пример обработки формы с коллекцией Skill для проекта

  6. Демонстрация работы обработки формы

6
Валидация данных в Java
  1. Основы валидации данных. вводимых пользователем

  2. javax.validation.constraints, org.hibernate.validator.constraints и пользовательские аннотации для валидации

  3. Добавление аннотаций в формы

  4. Активирование валидации для проекта и добавление message.properties

  5. Пример создания пользовательской аннотации и обработчика данной аннотации

  6. Изменение методов контроллеров для обработки результатов валидации

  7. Использование alert компонента для отображения ошибок на пользовательском интерфейсе

  8. Правила поиска ключа для интернационализации в Spring MVC

  9. Демонстрация работы валидации для проекта

7
Сервисная архитектура приложения на базе Spring IoC
  1. Повышение модульности кода, выделение алгоритма работы системы в отдельные бизнес сервисы

  2. Группировка бизнес функций в бизнес сервисы

  3. Декларативное управление транзакциями с помощью @Transactional

  4. Настройка поддержки декларативного управления транзакциями в Spring Config

  5. Создание класса сервиса, выполняемого по расписанию

  6. Объяснение алгоритма работы динамических прокси, поддерживающих декларативное управление транзакциями

8
Основы ajax загрузки на примере Load more...
  1. Основы AJAX

  2. Реализация контроллера для обработки AJAX запросов

  3. Реализация отдельного шаблона SiteMesh для AJAX ответов

  4. Изменения в ErrorHandler для AJAX ошибок

  5. Пример использования Spring Data Web Support для реализации постраничного отображения данных

  6. Использование JQuery ajax функции для выполнения AJAX запросов

  7. Формирование и считывание дополнительных параметров для js функций с помощью data-* атрибутов

  8. Демонстрация работы AJAX запросов

  9. Демонстрация обработки ошибок при AJAX запросах

9
Полнотекстовый поиск Elastic Search
  1. Основы полнотекстового поиска для web приложения

  2. Возможности ElasticSearch

  3. Использование Spring Data для взаимодействия с ElasticSearch

  4. Spring Config для конфигурирования ElasticSearch

  5. Моделирования данных для ElasticSearch

  6. Создание динамических репозиториев для взаимодействия с ElasticSearch

  7. Использование виртуальной машины Tomcat для запуска ElasticSearch сервиса

  8. Пример использования ElasticSearch в web проекте

  9. Правила моделирования объектов сущностей для My Resume проекта

  10. Начальное индексирование всех данных из базы данных

  11. Загрузка Lazy коллекций при индексировании

  12. Использование TransactionSynchronizationManager для выполнения кода после успешного commit

  13. Демонстрация работы поискового движка

10
Защита приложения с помощью Spring Security
  1. Архитектура Spring Security. Spring Security фильтры

  2. Конфигурация Spring Security в проекте

  3. Создание модели хранения текущего пользователя

  4. Реализация UserDetailsService

  5. SecurityUtil для программного доступа к Spring Security

  6. Контроллер и JSP для логина в систему

  7. Основы Method Security

  8. Основы Remember-Me Authentication

  9. Основы Session Management

  10. Expression-Based Access Control

  11. Spring Security tags

  12. Spring Data Integration

  13. Демонстрация работы SpringSecurity

11
Отправка Email из приложения
  1. Архитектура Email системы. Протокол SMTP

  2. Отправка email из java приложений

  3. Основы email шаблонизации

  4. Использование Spring xml конфигурационного файла для считывания настроек email шаблонов

  5. Асинхронная отправка email писем с web приложения с помощью ExecuterService

  6. Spring Config для Email

  7. Пример использования Spring FactoryBean для создания ExecuterService бина

  8. Использование Freemaker как обработчика email шаблонов

12
Интеграция с социальными сетями. Facebook API
  1. Основы интеграция web приложения с социальными сервисами

  2. Диаграмма взаимодействия между web приложением и социальным сервисом

  3. Создание и конфигурирования Facebook приложения

  4. Использование Restfb библиотеки

  5. Создание Facebook контроллера

  6. Создание SocialService и его реализация для Facebook

  7. Создание UI для интеграции с Facebook

  8. Демонстрация работы Login via Facebook функции

13
Безопасность web приложений
  1. XSS атаки

  2. SQL инъекции

  3. Переполнение логов

  4. Закрытие ресурсов

  5. DDOS атаки

  6. Контроль доступа к ресурсам

  7. Валидация данных

  8. Межсайтовая подделка запроса

  9. Использование компонентов с известными уязвимостями

  10. Нестандартные порты и пароли

  11. Принцип скрытия информации об ошибках

  12. Хорошие пароли

  13. Captcha

14
Производительность web Приложений
  1. Основные векторы улучшений производительности

  2. Правильный скелет HTML странички

  3. Сжатие и объединение JS & CSS

  4. Использование архивирования текстовых данных при передачи

  5. Обработка картинок

  6. Кэширование картинок, CSS, JS

  7. DB Pool

  8. Thread Pool

  9. JVM options

  10. SQL производительность

  11. Логирование SQL запросов Hibernate

  12. Утилита Explain

  13. Денормализация таблиц

  14. Кэширование на сервере

  15. Производительное логирование

Развертывание web приложения

1
Хостинг приложений. Загрузка приложения на AWS EC2
  1. Основные хостинги предоставляющие Java хостинг

  2. Создание AWS EC2 instance

  3. Настройка AWS фаервола

  4. Установка программных компонентов на Ubuntu Server

  5. Загрузка дампа базы данных на AWS EC2

  6. Сборка. конфигурирование и загрузка ROOT.war на AWS EC2

  7. Демонстрация работы загруженного приложения на удаленном сервере

2
Масштабирование приложений. NoSQL. MongoDb
  1. Вертикальное масштабирование

  2. Простая архитектура web приложения без горизонтального масштабирования

  3. Масштабирование JEE server with application

  4. Масштабирование сервера кэширования данных

  5. Использование очередей задач для масштабирования бизнес логики

  6. Балансировка DNS

  7. Масштабирование файловых серверов

  8. Репликация баз данных

  9. Вертикальный шардинг баз данных

  10. Горизонтальный шардинг баз данных

  11. NoSQL решения

  12. Теорема CAP

  13. Горизонтальное масштабирование MongoDb

3
Обзор архитектуры приложения на примере реализации JPA
  1. Полный обзор первой версии проекта My Resume с детальным пояснением особенно значимых компонентов и модулей

  2. Векторы оптимизации логики при использовании реляционной базы данных

  3. Проверка приложения на устойчивость к известным уязвимостям и атакам

  4. Проверка приложения на производительность

  5. Пример логирования всех запросов генерируемы Hibernate, анализ плана выполнения запросов и кэширования объектов на стороне сервера

  6. Сравнение схемы работы приложения, спроектированной в начале курса с результирующим кодом, который реализует данную схему

4
Обзор архитектуры приложения на примере реализации MongoDB
  1. Обзор базовых операций при работе с MongoDB

  2. Создание тестовой базы данных

  3. Изменения в проекте, необходимые для миграции с Postgres на MonoDb

  4. Обзор преимуществ Spring Data абстракции при миграции на новый источник данных

5
Чистый код в проекте My Resume
  1. Важность чистого кода

  2. Составные чистого кода на примере использования в проекте My Resume

  3. Дополнительные и развернутые источники чистого кода в Java

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6
4.6 из 5
92 Рейтинги

Детальный Рейтинг

Звезды 5
41
Звезды 4
21
Звезды 3
19
Звезды 2
9
Звезды 1
2
8a6f2a412e24e4213d6d5137e7d87b81
3-дневная гарантия возврата денег

Этот курс включает:

23 часов видео по запросу
1 статья
Полный пожизненный доступ
Доступ с мобильного
Сертификат об окончании
Web приложение – My Resume на базе фреймворка Spring
Цена:
0.16 ₽ 1,190 ₽
Layer 1