Новый интерес к реактивному программированию направлен на обеспечение большей масштабируемости и улучшенной производительности за счет неблокирующих операций
Spring фреймворк управляет bean-компонентами, объединяет их внутри контекста приложения Spring. Акт объединения bean-компонентов основан на шаблоне Внедрение зависимостей (Dependency Injection, DI)
Способы DI
- Через аргумент конструктора в XML
<bean id="inventoryService" class="com.example.InventoryService" /> <bean id="productService" class="com.example.ProductService" /> <constructor-arg ref="inventoryService" /> </bean>
2. Через класс конфигуратор
@Configuration public class ServiceConfiguration { @Bean public InventoryService inventoryService() { return new InventoryService(); } @Bean public ProductService productService() { return new ProductService(inventoryService()); } }
Аннотация @Configuration подсказывает фреймворку Spring, что
это класс конфигурации, который создает bean-компоненты для кон-
текста Spring.
Методы класса конфигурации снабжены аннотацией @Bean, указы-
вающей, что возвращаемые ими объекты должны быть добавлены
в контекст приложения как bean-компоненты
Автоматическая настройка уходит корнями в методы Spring, из-
вестные как автоматическое связывание (autowiring) и сканирова-
ние компонентов.
Spring Boot – это расширение для Spring
Framework, предлагающее несколько улучшений. Наиболее извест-
ным из них является автоконфигурация – Spring Boot может делать
обоснованные предположения о том, какие компоненты следует на-
строить и связать вместе, опираясь на элементы в пути поиска клас-
сов, переменные окружения и другие факторы.
Слово starter в идентификаторе артефакта.
Зависимости от Spring Boot Starter отличаются тем, что они обычно не имеют своего
библиотечного кода, а транзитивно подключают другие библиотеки. Достаточно добавить зависимость spring-boot-starter-web вместо длинного списка библиотек, которые позволят вам написать веб-приложение; освобождают от беспокойства о версиях библиотек. Вы можете быть уверены, что версии библиотек, добавленных транзитивно, будут совместимы с данной версией Spring Boot. Вам остается только определиться с версией Spring Boot.
@SpringBootApplication состоит из:
@SpringBootConfiguration – определяет этот класс как класс конфигурации.
@EnableAutoConfiguration – включает автоконфигурацию Spring
Boot.
@ComponentScan – включает сканирование компонентов.