https://github.com/jcoderpaul/spring_framework_lessons
Spring features: Core, Boot, Data, Test, Web, Validation, Security, AOP. Code examples, detailed comments, related documentation, interesting articles.
https://github.com/jcoderpaul/spring_framework_lessons
docker spring-aop spring-boot spring-core spring-data spring-data-jpa spring-mvc spring-mvc-rest-api spring-security spring-test spring-testcontainers spring-validation swagger-ui
Last synced: 9 days ago
JSON representation
Spring features: Core, Boot, Data, Test, Web, Validation, Security, AOP. Code examples, detailed comments, related documentation, interesting articles.
- Host: GitHub
- URL: https://github.com/jcoderpaul/spring_framework_lessons
- Owner: JcoderPaul
- Created: 2024-04-08T11:29:03.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2026-06-12T02:06:24.000Z (12 days ago)
- Last Synced: 2026-06-12T04:04:52.212Z (12 days ago)
- Topics: docker, spring-aop, spring-boot, spring-core, spring-data, spring-data-jpa, spring-mvc, spring-mvc-rest-api, spring-security, spring-test, spring-testcontainers, spring-validation, swagger-ui
- Language: Java
- Homepage:
- Size: 26.9 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
Awesome Lists containing this project
README
### Spring Lessons.
________________________________________________________________________________________________________________________
- [Spring (Core) lessons part 1 - XML-based Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1):
- [Lesson 1 - Схема зависимостей объектов в коде (простой пример зависимости, инверсии контроля)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-1---%D1%81%D1%85%D0%B5%D0%BC%D0%B0-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2-%D0%B2-%D0%BA%D0%BE%D0%B4%D0%B5-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80);
- [Lesson 2 - Внедрение параметров в Bean-ы через конструктор при помощи application.xml](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-2---%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2-%D0%B2-bean-%D1%8B-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80-%D0%BF%D1%80%D0%B8-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8-applicationxml);
- [Lesson 3 - Внедрение одних Bean-ов в другие Bean-ы через конструктор при помощи application.xml](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-3---%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B4%D0%BD%D0%B8%D1%85-bean-%D0%BE%D0%B2-%D0%B2-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5-bean-%D1%8B-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80-%D0%BF%D1%80%D0%B8-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8-applicationxml);
- [Lesson 4 - factory-method](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-4---factory-method);
- [Lesson 5 - Внедрение параметров через сеттеры (свойства - property)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-5---%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D1%81%D0%B5%D1%82%D1%82%D0%B5%D1%80%D1%8B-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0---property);
- [Lesson 6 - Beans Scope](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-6---beans-scope);
- [Lesson 7 - Beans Initialisation and Destruction CallBacks](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-7---beans-initialisation-and-destruction-callbacks);
- [Lesson 8 - Внедрение зависимостей из файла свойств (Injection from Properties Files)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-8---%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9-%D0%B8%D0%B7-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2-injection-from-properties-files);
- [Lesson 9 - BeanFactoryPostProcessor](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-9---beanfactorypostprocessor);
- [Spring (Core) lessons part 2 - Annotation-based Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_2):
- [Lesson 10 - @PostConstruct и @PreDestroy](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_2#lesson-10---postconstruct-%D0%B8-predestroy);
- [Lesson 11 - BeansPostProcessor (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_2#lesson-11---beanspostprocessor-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 12 - Custom Bean PostProcessor (практика)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_2#lesson-12---custom-bean-postprocessor-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0);
- [Lesson 13 - аннотации @Autowired, @Value, @Qualifier](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_2#lesson-13---%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D0%B8-autowired-value-qualifier);
- [Spring (Core) lessons part 3 - Annotation-based Configuration (continuation)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3):
- [Lesson 14 - Classpath Scanning и аннотация @Component (@Controller, @Repository, @Service)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-14---classpath-scanning-%D0%B8-%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F-component-controller-repository-service);
- [Lesson 15 - Bean Definition Readers (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-15---bean-definition-readers-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 16 - Type Filters](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-16---type-filters);
- [Lesson 17 - @Scope](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-17---scope);
- [Lesson 18 - JSR330](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-18---jsr330);
- [Spring (Core) lessons part 4 - Java-based Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4):
- [@Configuration и @Bean-аннотации](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#-configuration-%D0%B8-bean-%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D0%B8-);
- [Внедрение зависимостей компонента](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#-%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0-);
- [Lesson 19 - @Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-19---configuration);
- [Lesson 20 - @ImportResource и @Import](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-20---importresource-%D0%B8-import);
- [Lesson 21 - @Bean](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-21---bean);
- [Lesson 22 - @Profile](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-22---profile);
- [Spring (Core) lessons part 5 - Event Listeners](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_5):
- [Lesson 23 - Event Listeners (@EventListener, EventObject, ApplicationEventPublisher)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_5#lesson-23---event-listeners-eventlistener-eventobject-applicationeventpublisher);
________________________________________________________________________________________________________________________
- [Spring (Boot) lessons part 6 - Introduction to Spring-Boot](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6):
- [Lesson 24 - @Conditional](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-24---conditional);
- [Lesson 25 - Как сделать (сконфигурировать) простое Spring Boot приложение](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-25---%D0%BA%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%81%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B5-spring-boot-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5);
- [Lesson 26 - Spring Boot Application (Spring приложение, особенности)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-26---spring-boot-application-spring-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8);
- [Lesson 27 - Lombok (аннотации)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-27---lombok-%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D0%B8);
- [Lesson 28 - Properties - внешние файлы свойств](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-28---properties---%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2);
- [Lesson 29 - Yaml (*.yml) формат](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-29---yaml-format);
- [Lesson 30 - @ConfigurationProperties](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-30---configurationproperties);
- [Spring (Boot) lessons part 7 - Логирование](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_7):
- [Lesson 31 - Logging Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_7#lesson-31---logging-starter);
- [Lesson 32 - Logback Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_7#lesson-32---logback-configuration);
- [Spring (Boot) lessons part 8 - Test Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8):
- [Lesson 33 - Test-Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-33---test-starter);
- [Lesson 34 - Integration-Testing](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-34---integration-testing);
- [Lesson 35 - @ActiveProfiles](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-35---activeprofiles);
- [Lesson 36 - MetaAnnotation](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-36---metaannotation);
- [Lesson 37 - Внедрение зависимостей в тесты через конструктор](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-37---%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9-%D0%B2-%D1%82%D0%B5%D1%81%D1%82%D1%8B-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80);
- [Lesson 38 - Использование spring.properties в тестах](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-38---%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-springproperties-%D0%B2-%D1%82%D0%B5%D1%81%D1%82%D0%B0%D1%85);
- [Lesson 39 - Кэширование ApplicationContext](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-39---%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-applicationcontext);
- [Lesson 40 - Аннотация @DirtiesContext ('грязный контекст')](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-40---%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F-dirtiescontext);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 9 - Data JPA Starter и Data JPA Transactions](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9):
- [Lesson 41 - Подключение Spring-Data-JPA-Starter (теория, настройка и подключение БД)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9#lesson-41---%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-spring-data-jpa-starter-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%B8-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B4);
- [Lesson 42 - Создание Hibernate Entities](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9#lesson-42---%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-hibernate-entities);
- [Lesson 43 - @Transactional](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9#lesson-43---transactional);
- [Lesson 44 - Авто-конфигурирование транзакций](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9#lesson-44---%D0%B0%D0%B2%D1%82%D0%BE-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B9);
- [Lesson 45 - Настройки @Transactional](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9#lesson-45---%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-transactional);
- [Lesson 46 - Программное (ручное) управление транзакциями - TransactionTemplate](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9#lesson-46---%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5-%D1%80%D1%83%D1%87%D0%BD%D0%BE%D0%B5-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D1%8F%D0%BC%D0%B8---transactiontemplate);
- [Spring Boot lessons part 10 - Data JPA Repositories](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10):
- [Lesson 47 - Repository](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-47---repository);
- [Lesson 48 - Создание запросов к базе данных исходя из имен методов](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-48---%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%BA-%D0%B1%D0%B0%D0%B7%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D1%8F-%D0%B8%D0%B7-%D0%B8%D0%BC%D0%B5%D0%BD-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2);
- [Lesson 49 - NamedQuery (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-49---namedquery-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 50 - Аннотация @Query](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-50---%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F-query);
- [Lesson 51 - Модификация данных через запросы и использование аннотации @Modifying](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-51---%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D0%B8-modifying);
- [Lesson 52 - Специальные параметры в запросах, интерфейс Pageable и класс Sort](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-52---%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B2-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%D1%85-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81-pageable-%D0%B8-%D0%BA%D0%BB%D0%B0%D1%81%D1%81-sort);
- [Lesson 53 - Интерфейс Pageable и возвращаемые значения Page и Slice](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-53---%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81-pageable-%D0%B8-%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%89%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-page-%D0%B8-slice);
- [Lesson 54 - Аннотация @EntityGraph в запроса репозиториев](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-54---%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F-entitygraph-%D0%B2-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B5%D0%B2);
- [Lesson 55 - Аннотации @Lock и @QueryHints в запросах репозиториев](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-55---%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D0%B8-lock-%D0%B8-queryhints-%D0%B2-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%D1%85-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B5%D0%B2);
- [Lesson 56 - Hibernate (проекция, DTO) Projection](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-56---hibernate-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%86%D0%B8%D1%8F-dto-projection);
- [Lesson 57 - Spring Custom Repository Implementation - Самописные репозитории](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-57---spring-custom-repository-implementation---%D1%81%D0%B0%D0%BC%D0%BE%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%B5-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8);
- [Lesson 58 - Spring JPA Auditing - Аудит работы нашего приложения](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-58---spring-jpa-auditing---%D0%B0%D1%83%D0%B4%D0%B8%D1%82-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BD%D0%B0%D1%88%D0%B5%D0%B3%D0%BE-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F);
- [Lesson 59 - Hibernate-Envers в Spring приложении](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-59---hibernate-envers-%D0%B2-spring-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B8);
- [Spring Boot lessons part 11 - JDBC Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_11):
- [Lesson 60 - JDBC-Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_11#lesson-60---jdbc-starter);
- [Lesson 61 - Batch-size и Fetch-size](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_11#lesson-61---batch-size-%D0%B8-fetch-size);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 12 - Тестирование приложения при работе с InMemory БД H2](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_12):
- [Lesson 62 - H2 Base for tests](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_12#lesson-62---h2-base-for-tests);
- [Spring Boot lessons part 13 - Тестирование приложения при работе с БД через DOCKER](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_13):
- [Lesson 63 - Docker container for Tests](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_13#lesson-63---docker-container-for-tests);
- [Lesson 64 - Настройка дополнительных зависимостей и плагинов в Gradle при использовании Docker контейнера с БД](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_13#lesson-64---%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9-%D0%B8-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%BE%D0%B2-%D0%B2-gradle-%D0%BF%D1%80%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8-docker-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0-%D1%81-%D0%B1%D0%B4);
- [Lesson 65 - Тестирование PostgreSQL БД развернутой в Docker контейнере](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_13#lesson-65---%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-postgresql-%D0%B1%D0%B4-%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D0%BE%D0%B9-%D0%B2-docker-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B5);
- [Динамическое развертывание PostgreSQL БД в Docker контейнере средствами TestContainers](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_13#%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-postgresql-%D0%B1%D0%B4-%D0%B2-docker-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B5-%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8-testcontainers);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 14 - Database Migrations (Liquibase)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_14):
- [Lesson 66 - Миграционный фреймворк Liquibase (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_14#lesson-66---%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA-liquibase-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 67 - Миграционный фреймворк Liquibase (практика)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_14#lesson-67---%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA-liquibase-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0);
- [Lesson 68 - Миграционный фреймворк Liquibase (практика) ч.2 - Liquibase в тестах](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_14#lesson-68---%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA-liquibase-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0-%D1%872---liquibase-%D0%B2-%D1%82%D0%B5%D1%81%D1%82%D0%B0%D1%85);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 15 - Web Starter - Part 1](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15):
- [Lesson 69 - Web-starter (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-69---web-starter-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Java EE](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#java-ee);
- [Spring Boot Web](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#spring-boot-web);
- [Lesson 70 - Dispatcher servlet (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-70---dispatcher-servlet-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 71 - Controller](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-71---controller);
- [Lesson 72 - RequestMapping (Картирование запросов - "сопоставление запросов")](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-72---requestmapping-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2---%D1%81%D0%BE%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2);
- [Lesson 73 - Использование RequestMapping как общий префикс к запросу](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-73---%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-requestmapping-%D0%BA%D0%B0%D0%BA-%D0%BE%D0%B1%D1%89%D0%B8%D0%B9-%D0%BF%D1%80%D0%B5%D1%84%D0%B8%D0%BA%D1%81-%D0%BA-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%83);
- [Lesson 74 - Извлечение parameters, headers и cookies из полученного запроса](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-74---%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-parameters-headers-%D0%B8-cookies-%D0%B8%D0%B7-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0);
- [Lesson 75 - Работа с Model и установка атрибутов (начало)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-75---%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-model-%D0%B8-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%BE%D0%B2);
- [Lesson 75 - Model и установка атрибутов через параметры в URL или теле сообщения (без обращения к ModelAndView)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-75---model-%D0%B8-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%BE%D0%B2-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B2-url-%D0%B8%D0%BB%D0%B8-%D1%82%D0%B5%D0%BB%D0%B5-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B1%D0%B5%D0%B7-%D0%BE%D0%B1%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BA-modelandview);
- [Lesson 76 - Варианты перенаправления запросов Forward, Include, Redirect](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-76---%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-forward-include-redirect);
- [Spring Boot lessons part 16 - Web Starter - Part 2](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_16):
- [Lesson 77 - CRUD - API Design на уровне Controller](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_16#lesson-77---crud---api-design-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-controller);
- [Lesson 78 - CRUD - API Design на уровне Service](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_16#lesson-78---crud---api-design-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-service);
- [Lesson 79 - Тестирование разработанного CRUD API на уровне СЕРВИСОВ (Service)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_16#lesson-79---%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-crud-api-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2-service);
- [Lesson 80 - Тестирование разработанного CRUD API на уровне КОНТРОЛЛЕРОВ (Controller)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_16#lesson-80---%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-crud-api-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%B2-controller);
- [Lesson 81 - Конвертор дат](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_16#lesson-81---%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%BE%D1%80-%D0%B4%D0%B0%D1%82);
- [Spring Boot lessons part 17 - Thymeleaf Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17):
- [Lesson 82 - Подключение Thymeleaf-Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17#lesson-82---%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-thymeleaf-starter);
- [Lesson 83 - CRUD-View-Layer - CRUD операции на уровне отображения. UPDATE (EDIT) данных](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17#lesson-83---crud-view-layer---crud-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-update-edit-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85);
- [Lesson 84 - CRUD-View-Layer - CRUD операции на уровне отображения. REMOVE (DELETE) данных](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17#lesson-84---crud-view-layer---crud-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-remove-delete-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85);
- [Lesson 85 - CRUD-View-Layer - CRUD операции на уровне отображения. CREATE данных](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17#lesson-85---crud-view-layer---crud-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-create-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85);
- [Lesson 86 - CRUD-View-Layer - CRUD операции на уровне отображения. REDIRECT при CREATE данных (Теоретический урок)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17#lesson-86---crud-view-layer---crud-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-redirect-%D0%BF%D1%80%D0%B8-create-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D1%83%D1%80%D0%BE%D0%BA);
- [Lesson 87 - CRUD-View-Layer - Фильтрация запроса (Filter-Query)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17#lesson-87---crud-view-layer---%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-filter-query);
- [Lesson 88 - Постраничное получение и вывод информации (Pagination)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17#lesson-88---%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-pagination);
- [Spring Boot lessons part 18 - Validation Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18):
- [Lesson 89 - Validation-Starter - Простой пример валидации получаемых данных](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18#lesson-89---validation-starter---%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D0%BC%D1%8B%D1%85-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85);
- [Lesson 90 - Validation-Starter - Чуть более дружелюбный отклик приложения при валидации данных](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18#lesson-90---validation-starter---%D1%87%D1%83%D1%82%D1%8C-%D0%B1%D0%BE%D0%BB%D0%B5%D0%B5-%D0%B4%D1%80%D1%83%D0%B6%D0%B5%D0%BB%D1%8E%D0%B1%D0%BD%D1%8B%D0%B9-%D0%BE%D1%82%D0%BA%D0%BB%D0%B8%D0%BA-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D1%80%D0%B8-%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85);
- [Lesson 91 - Custom-validator - Самописные валидаторы или самописные аннотации для валидации](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18#lesson-91---custom-validator---%D1%81%D0%B0%D0%BC%D0%BE%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%B5-%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%82%D0%BE%D1%80%D1%8B-%D0%B8%D0%BB%D0%B8-%D1%81%D0%B0%D0%BC%D0%BE%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%B5-%D0%B0%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8);
- [Lesson 92 - Custom-validator - Использование групп проверки](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18#lesson-92---custom-validator---%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B3%D1%80%D1%83%D0%BF%D0%BF-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8);
- [Lesson 93 - ControllerAdvice и ExceptionHandler - Самописные обработчики исключений](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18#lesson-93---controlleradvice-%D0%B8-exceptionhandler---%D1%81%D0%B0%D0%BC%D0%BE%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8-%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9);
- [Lesson 94 - ControllerAdvice и ExceptionHandler - Глобальный самописный обработчик исключений](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18#lesson-94---controlleradvice-%D0%B8-exceptionhandler---%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D1%81%D0%B0%D0%BC%D0%BE%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%B9-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA-%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 19 - REST](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19):
- [REST - Введение](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#rest---%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5);
- [Lesson 95 - Практика ч.1 - первый REST контроллер и его простой метод](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#lesson-95---%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0-%D1%871---%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9-rest-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80-%D0%B8-%D0%B5%D0%B3%D0%BE-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4);
- [Lesson 96 - Практика ч.2 - расширенный REST контроллер и его CRUD методы](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#lesson-96---%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0-%D1%872---%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-rest-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80-%D0%B8-%D0%B5%D0%B3%D0%BE-crud-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B);
- [Lesson 97 - Практика ч.3 - обработчик ошибок для REST контроллеров](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#lesson-97---%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0-%D1%873---%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA-%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA-%D0%B4%D0%BB%D1%8F-rest-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%B2);
- [Lesson 98 - Ручное тестирование REST методов, SWAGGER API DOCs](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#lesson-98---%D1%80%D1%83%D1%87%D0%BD%D0%BE%D0%B5-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-rest-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2-swagger-api-docs);
- [Lesson 99 - Upload-image - 'загрузка картинок' в таблицу users БД](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#lesson-99---upload-image---%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83-users-%D0%B1%D0%B4);
- [Lesson 100 - Get-image - отображение картинок в 'профиле user-ов'](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#lesson-100---get-image---%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA-%D0%B2-%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B5-user-%D0%BE%D0%B2);
- [Lesson 101 - Использование ResponseEntity в методах контроллеров](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19#lesson-101---%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-responseentity-%D0%B2-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0%D1%85-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%B2);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 20 - Security Starter - PART 1](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20):
- [Security-Starter. Введение, определения, понятия (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#security-starter-%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Security-Starter. Подключение зависимости (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#security-starter-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Security-Starter. Authentication фильтр (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#security-starter-authentication-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Security-Starter. Запуск приложения и изучение Authentication фильтров по умолчанию (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#security-starter-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%B8%D0%B7%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-authentication-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2-%D0%BF%D0%BE-%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 102 - Dao Authentication Provider](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-102---dao-authentication-provider);
- [Lesson 103 - Form-Login (фильтр Username and Password)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-103---form-login-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80-username-and-password);
- [Lesson 104 - HTTP-Basic-Authentication](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-104---http-basic-authentication);
- [Lesson 105 - PasswordEncoder](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-105---passwordencoder);
- [Lesson 106 - Logout](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-106---logout);
- [Spring Boot lessons part 21 - Security Starter - PART 2](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21):
- [Lesson 107 - Authorization фильтр](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21#lesson-107---authorization-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80);
- [Lesson 108 - Pre и Post методы Security (теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21#lesson-108---pre-%D0%B8-post-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-security-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 109 - Доступ к аутентифицированному пользователю](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21#lesson-109---%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D1%86%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8E);
- [Lesson 110 - Доступ к аутентифицированному пользователю на HTML страницах с применением Thymeleaf](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21#lesson-110---%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D1%86%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8E-%D0%BD%D0%B0-html-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0%D1%85-%D1%81-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC-thymeleaf);
- [Lesson 111 - CSRF-Filter (CSRF атаки)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21#lesson-111---csrf-filter-csrf-%D0%B0%D1%82%D0%B0%D0%BA%D0%B8);
- [Lesson 112 - Security-Testing](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21#lesson-112---security-testing);
- [Spring Boot lessons part 22 - Security Starter - PART 3](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_22):
- [OAuth-2.0 (Теория)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_22#oauth-20-%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F);
- [Lesson 113 - Настройка OAuth-2.0 в web-приложении (Google as Authorization service)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_22#lesson-113---%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-oauth-20-%D0%B2-web-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B8-google-as-authorization-service);
- Регистрация приложения на сервисе авторизации;
- Настройка OAuth2.0 протокола в нашем web-приложении;
- [Lesson 114 - Преобразование Google Authentication-Principle в понятный нашему приложению UserDetails](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_22#lesson-114---%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-google-authentication-principle-%D0%B2-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%BD%D1%8B%D0%B9-%D0%BD%D0%B0%D1%88%D0%B5%D0%BC%D1%83-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8E-userdetails);
- [Lesson 115 - Swagger-Authorization](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_22#lesson-115---swagger-authorization);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 23 - Интернационализация и локализация в Spring](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_23):
- [Lesson 116 - i18n-MessageSource](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_23#lesson-116---i18n-messagesource);
- [Lesson 117 - i18n и внедрение его в HTML страницы с Thymeleaf](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_23#lesson-117---i18n-%D0%B8-%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B5%D0%B3%D0%BE-%D0%B2-html-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B-%D1%81-thymeleaf);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 24 - AOP в Spring](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24):
- [AOP (Аспектно-ориентированное программирование)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#aop-%D0%B0%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5):
- Основные понятия;
- Основные термины;
- [Lesson 118 - AOP - Pointcut (АОП - точка среза)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-118---aop---pointcut-%D0%B0%D0%BE%D0%BF---%D1%82%D0%BE%D1%87%D0%BA%D0%B0-%D1%81%D1%80%D0%B5%D0%B7%D0%B0);
- [Lesson 119 - Before - Advice (@Before)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-119---before---advice-before);
- [Lesson 120 - JoinPoint - Params](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-120---joinpoint---params);
- [Lesson 121 - After - Advices (@AfterThrowing, @AfterReturning и @After)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-121---after---advices-afterthrowing-afterreturning-%D0%B8-after);
- [Lesson 122 - Around - Advice (@Around)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-122---around---advice-around);
- [Lesson 123 - Best-Practices in AOP (Рекомендации по использованию механизма АОП)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-123---best-practices-in-aop-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D0%BE-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E-%D0%BC%D0%B5%D1%85%D0%B0%D0%BD%D0%B8%D0%B7%D0%BC%D0%B0-%D0%B0%D0%BE%D0%BF);
- [Дополнительный материал (ENG)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB-eng);
________________________________________________________________________________________________________________________
- [Spring Boot lessons part 25 - Custom Spring Boot Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_25).
________________________________________________________________________________________________________________________
Док. (ссылки) для изучения:
- [Spring Boot Reference Documentation](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/) ;
- [Spring Framework 6.1.5 Documentation](https://spring.io/projects/spring-framework) ;
- [Spring Framework 3.2.x Reference Documentation](https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/index.html) ;
- [Getting Started Guides](https://spring.io/guides) ;
- [Developing with Spring Boot](https://docs.spring.io/spring-boot/docs/current/reference/html/using.html) ;
- [Документация по Spring Boot (архив)](https://docs.spring.io/spring-boot/docs/) ;
________________________________________________________________________________________________________________________
См. официальные [Guides](https://spring.io/guides):
- [Getting Started Guides](https://spring.io/guides) - Эти руководства, рассчитанные на 15–30 минут, содержат быстрые
практические инструкции по созданию «Hello World» для любой задачи разработки с помощью Spring. В большинстве случаев
единственными необходимыми требованиями являются JDK и текстовый редактор.
- [Topical Guides](https://spring.io/guides#topicals) - Тематические руководства предназначенные для прочтения и
понимания за час или меньше, содержит более широкий или субъективный контент, чем руководство по началу работы.
- [Tutorials](https://spring.io/guides#tutorials) - Эти учебники, рассчитанные на 2–3 часа, обеспечивают более глубокое
контекстное изучение тем разработки корпоративных приложений, что позволяет вам подготовиться к внедрению реальных
решений.
________________________________________________________________________________________________________________________
- [Spring Projects на GitHub](https://github.com/spring-projects) ;
________________________________________________________________________________________________________________________