Содержание

Проработать

    Basic

  1. Евгений Борисов - Spring
  2. Максим Добрынин | ex. Jetbulb
  3. Spring Framework. Бины
  4. Spring Framework. Жизненный цикл
  5. 10 Spring and Spring Boot Common Mistakes You Need To STOP
  6. Spring MVC — Hello World, пример приложения.
  7. Spring Framework - The Basics
  8. Введение в Spring, или что делать, если по всему проекту @Autowired и @Component, а вы не понимаете, что это
  9. Spring Framework Guide
  10. Как писать на Spring в 2017
  11. Bean scopes
  12. Dependency Injection и Spring
  13. Spring изнутри. Этапы инициализации контекста
  14. Spring для ленивых. Основы, базовые концепции и примеры с кодом. Часть 2
  15. Обратная сторона Spring
  16. Обзор модулей Spring для Java
  17. Injecting Prototype Beans into a Singleton Instance in Spring
  18. Внедрение зависимостей через поля — плохая практика
  19. Spring: вопросы к собеседованию
  20. 01 - Spring. Введение
  21. Spring для ленивых. Основы, базовые концепции и примеры с кодом. Часть 1
  22. Как использовать аннотацию @Lookup
  23. Краткое введение во внедрение зависимостей: что это и когда это необходимо использовать
  24. Основы внедрения зависимостей
  25. Spring: в поисках контекста
  26. Евгений Борисов — Spring-потрошитель, часть 1
  27. Урок 2: Введение в Spring IoC контейнер
  28. Обработка исключений в контроллерах Spring
  29. Spring-потрошитель: жизненный цикл Spring Framework
  30. Введение в Spring Boot: создание простого REST API на Java
  31. Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…
  32. Что мы делаем не так со Спрингом
  33. Дополнительные возможности ApplicationContext
  34. Spring – лучший Java фреймворк для создания веб-приложений
  35. Learn Spring Fundamentals for Beginners - Full Course
  36. 6 способов выполнения метода при старте Spring Boot приложения
  37. Spring Boot ПОЛНЫЙ курс для начинающих [2025]
  38. Spring Framework. Введение
  39. Spring vs Spring Boot - разница
  40. Вопросы
  41. Собеседование по Java EE — Spring Framework (вопросы и ответы). Часть 1
  42. 75 вопросов и ответов на собеседование по Spring
  43. Spring MVC

  44. Spring MVC — основные принципы
  45. Spring’s RequestBody and ResponseBody Annotations
  46. web.xml и маппинг сервлетов
  47. Изучаем ResponseEntity и избавляемся от него в контроллерах Spring
  48. Spring MVC — загрузка файла с валидацией
  49. Разработка интернет-магазина на Spring Framework
  50. Метрики

  51. Сбор метрик Spring Boot приложения c помощью Prometheus и Grafana
  52. Мониторинг с Grafana. Best practices
  53. Error handling

  54. Як правильно робити Error handling по Clean Code
  55. Кеширование

  56. Кеширование в Spring Framework 3.1
  57. Кеширование данных — Java Spring
  58. Java Spring Boot [2024] Part 11: Cache
  59. @Cache Spring
  60. HikariCP - подключаемый пул соединений на Spring

  61. HikariCP — самый быстрый пул соединений на java
  62. Настройка пула соединений Hikari с помощью Spring Boot
  63. About Pool Sizing
  64. Spring Security

  65. Основы работы с Spring Security
  66. Подключаем Spring Security к новому проекту - Break IT
  67. Spring Security Architecture Explained
  68. Аутентификация - Spring Security в деталях
  69. API Authentication & Security - Java: Про ІТ під каву - #7
  70. Виды авторизации: сессии, JWT-токены. Для чего нужны сессии? Как работает JWT? (+ разбор ошибки)
  71. Аутентификация в Веб-Приложениях 👨‍💻JWT и Сессии
  72. JWT. Часть 1. Теория
  73. JWT как строить архитектуру
  74. Spring Cloud

  75. Использование Spring Cloud для микросервисов на Spring Boot
  76. REST Requests

  77. Exchange method of Spring RestTemplate - Part 1 || Calling REST API using RestTemplate
  78. Testcontainers

  79. Testcontainers: тестирование с реальными зависимостями
  80. Введение в Testcontainers. Прокачиваем интеграционные тесты.
  81. Testcontainers Интеграционные тесты для баз данных
  82. Embedded Servlet

  83. Comparing Embedded Servlet
  84. Logging

  85. Logging in Spring Boot
  86. Ведение журнала в Spring Boot
  87. DB connection

  88. JOOQ – разбираем Java-библиотеку | SoftTeco Meetup
  89. JOOQ — не замена Hibernate. Они решают разные проблемы
  90. Реактивного программирования

  91. Основы реактивного программирования на Java, лекция 1
  92. АОП

  93. АОП в Spring Framework
  94. Продуктивность

  95. Коли прод росте на 1000% | Виклики на Різдво | Java: Про ІТ під каву - #49
  96. Throttling - процесс лимитирования обработки запросов за определенное время Разобрать возможности тротлинга на spring.
  97. Implementing Throttling in Java (Spring Boot)

Что это:

Spring Framework - один из самых популярных наборов фреймворков для создания веб-приложений на Java.

Spring projects:

REST Requests

Transaction

Spring Transaction

BD connection

JOOQ

JOOQ - создает сущности на основе БД, путем подключения и получения необходимых данных.

Для запуска необходима заполненная БД.

Logging

Логирование через Lombok

Validation в Spring-boot

Hibernate validation

Тестирование

Testing

Bean scope:

  1. singleton(by default) - определяет один единственный бин для каждого контейнера Spring IoC.
  2. prototype - любое количество экземпляров bean. Не храниться в Spring context, значит preDestroy и etc - не будут выполняться. Если он создается в singleton бине, то создан будет только 1 такой бин.
  3. request - один экземпляр bean на каждый HTTP запрос. Касается исключительно ApplicationContext.
  4. session - один экземпляр bean на каждую HTTP сессию. Касается исключительно ApplicationContext.
  5. global session - аналогичен session - он используется в портлетных веб приложениях. Когда вы используете globalSession в "стандартном" сервлетном приложении эти beans имеют scope session.

Инициализация spring контекста:

  1. XML - ClassPathXmlApplicationContext(”context.xml”). Был изначальным методом.
  2. Annotations(с указанием пакета для сканирования) - AnnotationConfigApplicationContext(”package.name”).
  3. Java configuration - AnnotationConfigApplicationContext(JavaConfig.class). конфигурация через аннотации с указанием класса (или массива классов) помеченного аннотацией @Configuration. Используется если необходимо создать bean класса, который не имеет spring аннотаций.
  4. Groovy - GenericGroovyApplicationContext(”context.groovy”)

Имена в spring контексте

  1. При создании через @Component, etc - имя bean будет использовано имя аннотированного класса.
  2. При создании через @Bean - имя bean будет использовано имя аннотированного метода.

Spring аннотации:

Controller annotations:

Аннотации для создания Bean(Annotations):

Аннотации для создания Bean(Java configuration):

Advice

Другие:

АОП(AOP)

АОП(AOP) - Аспектно-ориентированное программирование. Идея АОП заключается в выделении так называемой сквозной функциональности. Помогает разделить бизнес логику примеры: логгирование, обработка исключений, трассировка, аутентификация и проверка прав доступа.

Spring bean lifecycle:

  1. Container started
  2. Bean instantiated
  3. Dependencies Injected
  4. Custom init() method
  5. Custom utility method
  6. Custom destroy() method
  1. Singleton - создаётся при старте приложения и удаляется в конце.
  2. Prototype - создаётся при вызове и удаляется GC.

Для управления созданием и уничтожением bean у нас есть методы:

  1. init-method
  2. destroy-method
  3. @PostConstruct
  4. @PreDestroy

Создание компонента:

Spring Value

Пример создания пустого List как default

@Value("${my.list.of.strings:}#{T(java.util.Collections).emptyList()}")
private List<String> myList;
    

Интерфейсы для слоев DAO и Service

Интерфейсы нужны для возможности замены реализации не затрагивая основной код. При использовании интерфейсов основной код ничего не знает об деталях реализации (слабая связанность). Соответственно, реализацию можно вынести в отдельный модуль (изолировать сложность). Если реализация отделена от основного кода, то становится легко подменить её в тестах, например, подсунуть in memory реализацию, вместо БД.