Весной вы можете использовать функцию проверки зависимостей, чтобы убедиться, что необходимые свойства были установлены или введены.
Режимы проверки зависимостей
поддерживаются 4 режима проверки зависимостей:
- нет – Нет проверки зависимостей.
- простой – Если какие-либо свойства примитивного типа (int, long, double…) и типов коллекций (карта, список..) не были установлены, будет выдано исключение UnsatisfiedDependencyException.
- объекты – Если какие-либо свойства типа объекта не были заданы, будет выдано исключение UnsatisfiedDependencyException.
- все – Если какие-либо свойства любого типа не были заданы, будет выдано исключение UnsatisfiedDependencyException .
P.S Режим по умолчанию – нет
Пример
Объект клиента и Человека для демонстрации.
package com.mkyong.common; public class Customer { private Person person; private int type; private String action; //getter and setter methods }
package com.mkyong.common; public class Person { private String name; private String address; private int age; //getter and setter methods }
1. проверка зависимостей отсутствует
Файл конфигурации Spring bean с режимом проверки зависимостей “нет”.
Если вы явно не определили режим проверки зависимостей, по умолчанию он равен “нет”. Проверка зависимостей не выполняется.
2. простая проверка зависимостей
Файл конфигурации Spring bean с “простым” режимом проверки зависимостей.
Свойство ‘type’ (примитивный тип или типы коллекций) не было задано, будет вызвано исключение UnsatisfiedDependencyException .
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CustomerBean' defined in class path resource [config/Spring-Customer.xml]: Unsatisfied dependency expressed through bean property 'type': Set this property value or disable dependency checking for this bean.
3. проверка зависимостей объектов
Файл конфигурации Spring bean с режимом проверки зависимостей “объекты”.
Свойство ‘person’ (тип объектов) не было задано, будет вызвано исключение UnsatisfiedDependencyException .
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'CustomerBean' defined in class path resource [config/Spring-Customer.xml]: Unsatisfied dependency expressed through bean property 'person': Set this property value or disable dependency checking for this bean.
4. проверка всех зависимостей
Файл конфигурации Spring bean с режимом проверки зависимостей “все”.
Комбинация режима “простой” и “объекты”, если какие-либо свойства любого типа (примитив, коллекция и объект) не были установлены, будет выдано исключение UnsatisfiedDependencyException .
Глобальная проверка зависимостей по умолчанию
Явно определять режим проверки зависимостей для каждого компонента утомительно и подвержено ошибкам, вы можете установить атрибут проверки зависимостей по умолчанию в корневом элементе , чтобы заставить все компоненты, объявленные в корневом элементе , применять это правило. Однако этот корневой режим по умолчанию будет переопределен собственным режимом компонента, если он указан.
Все компоненты, объявленные в этом файле конфигурации, по умолчанию находятся в режиме проверки зависимостей “все”.
Оригинал: “https://mkyong.com/spring/spring-properties-dependency-checking/”