Содержание

Проработать

    Basic

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

  40. Spring MVC — основные принципы
  41. Spring’s RequestBody and ResponseBody Annotations
  42. web.xml и маппинг сервлетов
  43. Изучаем ResponseEntity и избавляемся от него в контроллерах Spring
  44. Spring MVC — загрузка файла с валидацией
  45. @Transactional

  46. Как на самом деле работает @Transactional Spring?
  47. @Transactional в Spring под капотом
  48. Руководство по Spring. Управление транзакциями.
  49. Советы и ошибки в Spring Transactional
  50. Тестирование Spring приложений. Транзакции в тестировании
  51. Управление транзакциями в Spring: @Transactional в деталях
  52. Транзакции в Spring Framework
  53. Транзакции. Теория и практика на Spring
  54. Кеширование

  55. Кеширование в Spring Framework 3.1
  56. Кеширование данных — Java Spring
  57. @Cache Spring
  58. HikariCP - подключаемый пул соединений на Spring

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

  63. Основы работы с Spring Security
  64. Подключаем Spring Security к новому проекту - Break IT
  65. Spring Security Architecture Explained
  66. Аутентификация - Spring Security в деталях
  67. Spring Cloud

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

  70. Exchange method of Spring RestTemplate - Part 1 || Calling REST API using RestTemplate
  71. Testcontainers

  72. Testcontainers: тестирование с реальными зависимостями
  73. Введение в Testcontainers. Прокачиваем интеграционные тесты.
  74. Testcontainers Интеграционные тесты для баз данных
  75. Embedded Servlet

  76. Comparing Embedded Servlet
  77. Logging

  78. Logging in Spring Boot
  79. Ведение журнала в Spring Boot
  80. DB connection

  81. JOOQ – разбираем Java-библиотеку | SoftTeco Meetup
  82. Реактивного программирования

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

Что это:

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

Spring projects:

REST Requests

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 - не будут выполняться.
  3. request - один экземпляр bean на каждый HTTP запрос. Касается исключительно ApplicationContext.
  4. session - один экземпляр bean на каждую HTTP сессию. Касается исключительно ApplicationContext.
  5. global session - аналогичен session - он используется в портлетных веб приложениях. Когда вы используете globalSession в "стандартном" сервлетном приложении эти beans имеют scope session.

Spring аннотации:

Controller annotations:

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

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;