Web приложение - My Resume на базе фреймворка Spring
3.5 (68 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
391 students enrolled

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

Изучение Spring (Core, MVC, Data, Security) + Hibernate для создания web приложения по созданию резюме Java разработчика
3.5 (68 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
391 students enrolled
Created by DevStudy .net
Last updated 12/2018
Russian
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 22.5 hours on-demand video
  • 13 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Проектировать и создавать реляционные базы данных;
  • Использовать шаблон MVC для создания web системы любой сложности;
  • Разбивать вашу будущую системы на отдельные модули с четким разграничением ответственности для каждого модуля и управлять зависимостями с помощью Spring IoC контейнера;
  • Использовать возможности Spring MVC и Spring Data для быстрой разработки web приложений;
  • Использовать Spring Data для построения абстрактных репозиториев с возможностью быстро изменить тип хранилища с наименьшими затратами;
  • Использовать декларативное управление транзакциями и возможности аспектно-ориентированного программирования;
  • Контролировать доступ к отдельным модулям Вашего приложения с помощью Spring Security;
  • Писать чистый и понятный другому программисту код;
  • Интегрировать социальные сервисы в Ваш проект;
  • Защищать свое web приложение от общеизвестных атак и уязвимостей;
  • Писать производительные приложения и быстро находить узкие места в вашем приложении;
  • Загружать Ваш проект на хостинг с последующим предоставлением доступа Вашим клиентам;
  • Использовать основные правила масштабирования Вашего приложения при необходимости увеличить число клиентов.
Course content
Expand all 22 lectures 22:41:05
+ Подготовка к разработки
3 lectures 03:13:59
  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 шаблона

Preview 57:54
  1. Обзор все UI макетов, которые необходимы для разработки данного проекта

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

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

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

Основные возможности реляционных баз данных. SQL.
01:13:59
  1. Проектирование базы данных для проекта My Resume, обзор основных таблиц и связей между ними (Выполнение домашнего задания прошлого урока)

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

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

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

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

Создание HTML шаблона с помощью Bootstrap
01:02:06
+ Разработка web приложения
14 lectures 11:29:09
  1. Проблема дублирования и сложности кода представления и ее решение с помощью шаблонизации и декомпозиции

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

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

Preview 36:57
  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 для проекта

Основы Spring Core: Spring IoC container
57:02
  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 в проекте

Основы Spring MVC для веб приложения
01:21:53
  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

ORM, JPA, SpringData
01:53:02
  1. Создание всех классов сущностей для проекта (Выполнение домашнего задания прошлого урока)

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

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

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

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

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

Основы обработки HTML форм с помощью Spring
46:44
  1. Основы валидации данных. вводимых пользователем

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

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

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

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

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

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

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

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

Preview 23:56
  1. Повышение модульности кода, выделение алгоритма работы системы в отдельные бизнес сервисы

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

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

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

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

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

Сервисная архитектура приложения на базе Spring IoC
40:46
  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 запросах

Основы ajax загрузки на примере Load more...
22:30
  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. Демонстрация работы поискового движка

Полнотекстовый поиск Elastic Search
43:45
  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

Защита приложения с помощью Spring Security
01:03:53
  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 шаблонов

Отправка Email из приложения
23:35
  1. Основы интеграция web приложения с социальными сервисами

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

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

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

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

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

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

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

Интеграция с социальными сетями. Facebook API
19:15
  1. XSS атаки

  2. SQL инъекции

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

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

  5. DDOS атаки

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

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

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

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

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

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

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

  13. Captcha

Безопасность web приложений
56:28
  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 Приложений
59:23
+ Развертывание web приложения
5 lectures 07:57:57
  1. Основные хостинги предоставляющие Java хостинг

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

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

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

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

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

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

Хостинг приложений. Загрузка приложения на AWS EC2
01:09:44
  1. Вертикальное масштабирование

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

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

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

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

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

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

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

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

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

  11. NoSQL решения

  12. Теорема CAP

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

Preview 01:03:43
  1. Полный обзор первой версии проекта My Resume с детальным пояснением особенно значимых компонентов и модулей

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

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

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

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

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

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

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

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

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

Обзор архитектуры приложения на примере реализации MongoDB
01:02:29
  1. Важность чистого кода

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

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

Чистый код в проекте My Resume
01:35:21
Requirements
  • Знание Java core: (Classes, IO, Collections, Exceptions, JDBC) (Для получения этих знаний рекомендуем курс Основы Java SE - HTTP сервер);
  • Базовые знания SQL (select, insert, update, delete, основы транзакций) (Для получения этих знаний рекомендуем курс Основы SQL);
  • Знание Java EE: Servlets, JSP, Filters, Listeners, JSTL, HTTP протокол, а также опыт написания web приложений на Java, используя MVC шаблон (Для получения этих знаний рекомендуем курс Web приложение - IShop);
  • Знание HTML, CSS, JavaScript, Bootstrap, Основ верстки (Для получения этих знаний рекомендуем курс Макет интернет магазина - IShop)
  • Понимание принципов декларативного управления транзакциями, внедрения зависимостей и объектно-реляционного отображения (Для получения этих знаний рекомендуем курс Рефакторинг Web приложения - IShop).
Description

В рамках данного курса будет написано 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

Who this course is for:
  • Курс ориентирован на Java Junior разработчиков, которые хотят прокачать свои skills до Java Junior+ или Java Middle.