{"id":19514596,"url":"https://github.com/jcoderpaul/spring_framework_lessons","last_synced_at":"2026-06-15T17:31:39.122Z","repository":{"id":232185519,"uuid":"783685910","full_name":"JcoderPaul/Spring_Framework_Lessons","owner":"JcoderPaul","description":"Spring features: Core, Boot, Data, Test, Web, Validation, Security, AOP. Code examples, detailed comments, related documentation, interesting articles.","archived":false,"fork":false,"pushed_at":"2026-06-12T02:06:24.000Z","size":28255,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-06-12T04:04:52.212Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JcoderPaul.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-08T11:29:03.000Z","updated_at":"2026-06-12T02:06:27.000Z","dependencies_parsed_at":"2024-04-08T12:50:08.782Z","dependency_job_id":"8fa35929-d118-4539-a30b-149e67b73408","html_url":"https://github.com/JcoderPaul/Spring_Framework_Lessons","commit_stats":null,"previous_names":["jcoderpaul/spring_framework_lessons"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JcoderPaul/Spring_Framework_Lessons","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FSpring_Framework_Lessons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FSpring_Framework_Lessons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FSpring_Framework_Lessons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FSpring_Framework_Lessons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JcoderPaul","download_url":"https://codeload.github.com/JcoderPaul/Spring_Framework_Lessons/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FSpring_Framework_Lessons/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34374146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-11-10T23:36:59.602Z","updated_at":"2026-06-15T17:31:39.116Z","avatar_url":"https://github.com/JcoderPaul.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Spring Lessons.\n\n________________________________________________________________________________________________________________________\n- [Spring (Core) lessons part 1 - XML-based Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1):\n  - [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);\n  - [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);\n  - [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);\n  - [Lesson 4 - factory-method](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-4---factory-method);\n  - [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);\n  - [Lesson 6 - Beans Scope](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-6---beans-scope);\n  - [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);\n  - [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);\n  - [Lesson 9 - BeanFactoryPostProcessor](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_1#lesson-9---beanfactorypostprocessor);\n- [Spring (Core) lessons part 2 - Annotation-based Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_2):\n  - [Lesson 10 - @PostConstruct и @PreDestroy](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_2#lesson-10---postconstruct-%D0%B8-predestroy);\n  - [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);\n  - [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);\n  - [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);\n- [Spring (Core) lessons part 3 - Annotation-based Configuration (continuation)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3):\n  - [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);\n  - [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);\n  - [Lesson 16 - Type Filters](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-16---type-filters);\n  - [Lesson 17 - @Scope](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-17---scope);\n  - [Lesson 18 - JSR330](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_3#lesson-18---jsr330);\n- [Spring (Core) lessons part 4 - Java-based Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4):\n  - [@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-);\n  - [Внедрение зависимостей компонента](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-);\n  - [Lesson 19 - @Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-19---configuration);\n  - [Lesson 20 - @ImportResource и @Import](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-20---importresource-%D0%B8-import);\n  - [Lesson 21 - @Bean](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-21---bean);\n  - [Lesson 22 - @Profile](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_4#lesson-22---profile);\n- [Spring (Core) lessons part 5 - Event Listeners](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_5):\n  - [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);\n________________________________________________________________________________________________________________________\n\n- [Spring (Boot) lessons part 6 - Introduction to Spring-Boot](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6):\n  - [Lesson 24 - @Conditional](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-24---conditional);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [Lesson 29 - Yaml (*.yml) формат](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-29---yaml-format);\n  - [Lesson 30 - @ConfigurationProperties](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_6#lesson-30---configurationproperties);\n- [Spring (Boot) lessons part 7 - Логирование](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_7):\n  - [Lesson 31 - Logging Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_7#lesson-31---logging-starter);\n  - [Lesson 32 - Logback Configuration](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_7#lesson-32---logback-configuration);\n- [Spring (Boot) lessons part 8 - Test Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8):\n  - [Lesson 33 - Test-Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-33---test-starter);\n  - [Lesson 34 - Integration-Testing](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-34---integration-testing);\n  - [Lesson 35 - @ActiveProfiles](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-35---activeprofiles);\n  - [Lesson 36 - MetaAnnotation](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_8#lesson-36---metaannotation);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n________________________________________________________________________________________________________________________\n\n- [Spring Boot lessons part 9 - Data JPA Starter и Data JPA Transactions](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9):\n  - [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);\n  - [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);\n  - [Lesson 43 - @Transactional](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_9#lesson-43---transactional);\n  - [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);\n  - [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);\n  - [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);\n- [Spring Boot lessons part 10 - Data JPA Repositories](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10):\n  - [Lesson 47 - Repository](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_10#lesson-47---repository);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n- [Spring Boot lessons part 11 - JDBC Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_11):\n  - [Lesson 60 - JDBC-Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_11#lesson-60---jdbc-starter);\n  - [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);\n________________________________________________________________________________________________________________________\n- [Spring Boot lessons part 12 - Тестирование приложения при работе с InMemory БД H2](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_12):\n  - [Lesson 62 - H2 Base for tests](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_12#lesson-62---h2-base-for-tests);\n- [Spring Boot lessons part 13 - Тестирование приложения при работе с БД через DOCKER](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_13):\n  - [Lesson 63 - Docker container for Tests](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_13#lesson-63---docker-container-for-tests);\n  - [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);\n  - [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);\n  - [Динамическое развертывание 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);\n________________________________________________________________________________________________________________________\n- [Spring Boot lessons part 14 - Database Migrations (Liquibase)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_14):\n  - [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);\n  - [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);\n  - [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);\n________________________________________________________________________________________________________________________\n\n- [Spring Boot lessons part 15 - Web Starter - Part 1](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15):\n  - [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);\n    - [Java EE](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#java-ee);\n    - [Spring Boot Web](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#spring-boot-web);\n  - [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);\n  - [Lesson 71 - Controller](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_15#lesson-71---controller);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n- [Spring Boot lessons part 16 - Web Starter - Part 2](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_16):\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n- [Spring Boot lessons part 17 - Thymeleaf Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_17):\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n- [Spring Boot lessons part 18 - Validation Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_18):\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n________________________________________________________________________________________________________________________\n\n- [Spring Boot lessons part 19 - REST](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_19):\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n________________________________________________________________________________________________________________________\n\n- [Spring Boot lessons part 20 - Security Starter - PART 1](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20):\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [Lesson 102 - Dao Authentication Provider](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-102---dao-authentication-provider);\n  - [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);\n  - [Lesson 104 - HTTP-Basic-Authentication](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-104---http-basic-authentication);\n  - [Lesson 105 - PasswordEncoder](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-105---passwordencoder);\n  - [Lesson 106 - Logout](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_20#lesson-106---logout);\n- [Spring Boot lessons part 21 - Security Starter - PART 2](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21):\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [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);\n  - [Lesson 112 - Security-Testing](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_21#lesson-112---security-testing);\n- [Spring Boot lessons part 22 - Security Starter - PART 3](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_22):\n  - [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);\n  - [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);\n    - Регистрация приложения на сервисе авторизации;\n    - Настройка OAuth2.0 протокола в нашем web-приложении;\n  - [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);\n  - [Lesson 115 - Swagger-Authorization](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_22#lesson-115---swagger-authorization);\n________________________________________________________________________________________________________________________\n- [Spring Boot lessons part 23 - Интернационализация и локализация в Spring](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_23):\n  - [Lesson 116 - i18n-MessageSource](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_23#lesson-116---i18n-messagesource);\n  - [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);\n________________________________________________________________________________________________________________________\n- [Spring Boot lessons part 24 - AOP в Spring](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24):\n  - [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):\n    - Основные понятия;\n    - Основные термины;\n  - [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);\n  - [Lesson 119 - Before - Advice (@Before)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-119---before---advice-before);\n  - [Lesson 120 - JoinPoint - Params](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-120---joinpoint---params);\n  - [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);\n  - [Lesson 122 - Around - Advice (@Around)](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_24#lesson-122---around---advice-around);\n  - [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);\n  - [Дополнительный материал (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);\n________________________________________________________________________________________________________________________\n- [Spring Boot lessons part 25 - Custom Spring Boot Starter](https://github.com/JcoderPaul/Spring_Framework_Lessons/tree/master/Spring_part_25).\n________________________________________________________________________________________________________________________\nДок. (ссылки) для изучения:\n- [Spring Boot Reference Documentation](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/) ;\n- [Spring Framework 6.1.5 Documentation](https://spring.io/projects/spring-framework) ;\n- [Spring Framework 3.2.x Reference Documentation](https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/index.html) ;\n- [Getting Started Guides](https://spring.io/guides) ;\n- [Developing with Spring Boot](https://docs.spring.io/spring-boot/docs/current/reference/html/using.html) ;\n- [Документация по Spring Boot (архив)](https://docs.spring.io/spring-boot/docs/) ;\n________________________________________________________________________________________________________________________\nСм. официальные [Guides](https://spring.io/guides):\n- [Getting Started Guides](https://spring.io/guides) - Эти руководства, рассчитанные на 15–30 минут, содержат быстрые\n  практические инструкции по созданию «Hello World» для любой задачи разработки с помощью Spring. В большинстве случаев\n  единственными необходимыми требованиями являются JDK и текстовый редактор.\n- [Topical Guides](https://spring.io/guides#topicals) - Тематические руководства предназначенные для прочтения и\n  понимания за час или меньше, содержит более широкий или субъективный контент, чем руководство по началу работы.\n- [Tutorials](https://spring.io/guides#tutorials) - Эти учебники, рассчитанные на 2–3 часа, обеспечивают более глубокое\n  контекстное изучение тем разработки корпоративных приложений, что позволяет вам подготовиться к внедрению реальных\n  решений.\n________________________________________________________________________________________________________________________\n- [Spring Projects на GitHub](https://github.com/spring-projects) ;\n________________________________________________________________________________________________________________________","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcoderpaul%2Fspring_framework_lessons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcoderpaul%2Fspring_framework_lessons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcoderpaul%2Fspring_framework_lessons/lists"}