Перейти к основному содержимому

32 записи с тегом "Spring Dependency Injection"

Посмотреть все теги

· 3 мин. чтения

1. Обзор

В этом руководстве мы обсудим, как использовать внедрение зависимостей для вставки макетов Mockito в Spring Beans для модульного тестирования.

В реальных приложениях, где компоненты часто зависят от доступа к внешним системам, важно обеспечить надлежащую изоляцию тестов, чтобы мы могли сосредоточиться на тестировании функциональности данного модуля без необходимости задействовать всю иерархию классов для каждого теста.

Внедрение макета — это чистый способ ввести такую изоляцию.

2. Зависимости Maven

· 3 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим распространенные ошибки, которые приводят к исключению NullPointerException в поле Autowired . Мы также объясним, как решить проблему.

2. Постановка задачи

Во-первых, давайте определим компонент Spring с пустым методом doWork :

@Component
public class MyComponent {
public void doWork() {}
}

· 4 мин. чтения

1. Введение

Возможно, одним из наиболее важных принципов разработки современного программного обеспечения является внедрение зависимостей (DI), которое совершенно естественно вытекает из другого критически важного принципа: модульности.

В этом кратком руководстве будет рассмотрен особый тип техники внедрения зависимостей в Spring, называемый внедрением зависимостей на основе конструктора, что, проще говоря, означает, что мы передаем необходимые компоненты в класс во время создания экземпляра.

Для начала нам нужно импортировать зависимость spring-context в наш pom.xml :

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>

Затем нам нужно настроить файл конфигурации . Этот файл может быть файлом POJO или XML, в зависимости от предпочтений.

· 4 мин. чтения

1. Введение

В этом кратком руководстве мы рассмотрим поддержку внедрения зависимостей на уровне методов в Spring с помощью аннотации @Lookup .

2. Почему @Lookup ?

Метод, аннотированный @Lookup, сообщает Spring, чтобы он возвращал экземпляр возвращаемого типа метода, когда мы его вызываем.

По сути, Spring переопределит наш аннотированный метод и будет использовать возвращаемый тип и параметры нашего метода в качестве аргументов для BeanFactory#getBean.

· 6 мин. чтения

1. Обзор

В этом руководстве мы подробно рассмотрим аннотацию Spring @Component и связанные с ней области. Мы увидим, как мы можем использовать его для интеграции с некоторыми основными функциями Spring и как воспользоваться его многочисленными преимуществами.

2. Контекст приложения Spring

Прежде чем мы сможем понять значение @Component , нам сначала нужно немного понять Spring ApplicationContext .

Spring ApplicationContext — это место, где Spring содержит экземпляры объектов, которые были идентифицированы для автоматического управления и распространения. Это так называемые бобы.

· 6 мин. чтения

1. Обзор

В этом руководстве мы обсуждаем Spring org.springframework.beans.factory.NoSuchBeanDefinitionException .

Это распространенное исключение, выбрасываемое BeanFactory при попытке разрешить bean-компонент, который просто не определен в контексте Spring.

Мы проиллюстрируем возможные причины этой проблемы и доступные решения.

И, конечно же, исключения случаются, когда мы меньше всего их ожидаем, поэтому взгляните на полный список исключений и решений в Spring .

· 17 мин. чтения

1. Обзор

В этом руководстве по Spring Framework мы покажем, как использовать аннотации, связанные с внедрением зависимостей, а именно аннотации @Resource , @Inject и @Autowired . Эти аннотации предоставляют классам декларативный способ разрешения зависимостей:

@Autowired 
ArbitraryClass arbObject;

В отличие от их прямого создания (императивный способ):

ArbitraryClass arbObject = new ArbitraryClass();

Две из трех аннотаций относятся к пакету расширения Java: javax.annotation.Resource и javax.inject.Inject . Аннотация @Autowired принадлежит пакету org.springframework.beans.factory.annotation .

· 4 мин. чтения

1. Обзор

В этом кратком руководстве мы подробно рассмотрим, как внедрить карту из файла YAML в Spring Boot .

Во-первых, мы начнем с небольшого понимания файлов YAML в Spring Framework. Затем мы продемонстрируем на практическом примере, как связать свойства YAML с Map .

2. Файлы YAML в Spring Framework

Использование файлов YAML для хранения внешних данных конфигурации является обычной практикой среди разработчиков Spring. По сути, Spring поддерживает документы YAML в качестве альтернативы свойствам и использует SnakeYAML под капотом для их разбора .

· 2 мин. чтения

1. Введение

В этом кратком руководстве мы объясним, как использовать аннотацию @Autowired в абстрактных классах .

Мы применим @Autowired к абстрактному классу и сосредоточимся на важных моментах, которые следует учитывать.

2. Инъекция сеттера

Мы можем использовать @Autowired в методе установки:

· 5 мин. чтения

1. Движущие силы

В приложении Spring внедрение одного bean-компонента в другой bean-компонент очень распространено. Однако иногда желательно внедрить компонент в обычный объект. Например, мы можем захотеть получить ссылки на службы из объекта сущности.

К счастью, добиться этого не так сложно, как может показаться. В следующих разделах будет показано, как это сделать с помощью аннотации @Configurable и AspectJ weaver.

2. Аннотация @Configurable

Эта аннотация позволяет экземплярам декорированного класса содержать ссылки на bean-компоненты Spring.