Skip to content

NemchinovSergey/topjava

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Моя стажировка в Java Enterprise Online Project

Описание и план проекта

Разработка полнофункционального Spring/JPA Enterprise приложения c авторизацией и правами доступа на основе ролей с использованием наиболее популярных инструментов и технологий Java: Maven, Spring MVC, Security, JPA(Hibernate), REST(Jackson), Bootstrap (css,js), datatables, jQuery + plugins, Java 8 Stream and Time API

  • Основное внимание уделяется способам решения многочисленных проблем разработки в Spring/JPA, а также структурному (красивому и надежному) java кодированию и архитектуре приложения.
  • Большое внимание уделяется тестированию кода: в проекте почти 90 тестов (JUnit).
  • Несмотря на относительно небольшой размер, приложение разрабатывается с нуля как большой проект (например, используется кэш 2-го уровня Hibernate, настраивается Jackson для работы с ленивой загрузкой Hibernate, делаются конверторы для типов LocalDateTime (Java 8 time API), которые еще не поддерживаются ни JPA/Hibernate, ни Jackson/json). Разбираются архитектурные паттерны: слои приложения и как правильно разбивать логику по слоям, когда нужно применять Data Transfer Object. Т.е на выходе получается не учебный проект, а хорошо маштабируемый шаблон для большого проекта на всех пройденных технологиях.
  • Большое внимание уделяется деталям: популяция базы, использование транзакционности, тесты сервисов и REST контроллеров, насторойка EntityManagerFactory, выбор реализации пула коннектов. Особое внимание уделяется работе с базой: через Spring JDBC, Spring ORM и Spring Data Jpa.
  • Используются самые востребованные на сегодняшний момент фреймворки: Maven, Spring Security 4 вместе с Spring Security Test, наиболее удобный для работы с базой проект Spring Data Jpa, библиотека логирования logback, реализующая SLF4J, повсеместно используемый Bootstrap и jQuery.

План проекта

Архитектура проекта. Персистентность.

Разработка WEB

  • Spring кэш
  • Spring Web
  • JSP, JSTL, i18n
  • Tomcat maven plugin. JNDI
  • Spring Web MVC
  • Spring Internationalization
  • Тестирование Spring MVC
  • REST контроллеры
  • Тестирование REST контроллеров. Jackson.
  • jackson-datatype-hibernate. Тестирование через матчеры.
  • Тестирование через SoapUi. UTF-8
  • WebJars.
  • Bootstrap. jQuery datatables.
  • AJAX. jQuery. Notifications.
  • Spring Security
  • Spring Binding/Validation
  • Работа с datatables через Ajax.
  • Spring Security Test
  • Кастомизация JSON (@JsonView) и валидации (groups)
  • Encoding password
  • CSRF (добавление в проект защиты от межсайтовой подделки запроса)
  • form-login. Spring Security Taglib
  • Handler interceptor
  • Spring Exception Handling
  • Смена локали
  • Фильтрация JSON через @JsonView
  • Защита от XSS (Cross Site Scripting)
  • Деплой в Heroku
  • Локализация datatables, ошибок валидации
  • Обработка ошибок 404 (NotFound)
  • Доступ к AuthorizedUser

Просто полезные ресурсы

HTML, JavaScript, CSS

Java (базовые вещи)

Туториалы, разное

Что нужно знать о бэкенде новичку в веб-разработке Туториалы: Spring Framework, Hibernate, Java Core, JDBC

Сервлеты

JDBC, SQL

Разное

Книги

About

Java Enterprise: Maven/ Spring/ Security/ JPA(Hibernate)/ REST(Jackson)/ Bootstrap(CSS)/ jQuery

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 98.8%
  • HTML 1.2%