Проверка зависимостей Spring с аннотацией @Required

Проверка зависимостей Spring с помощью аннотации @Required

dependency checking Spring в файле конфигурации bean-компонента используется, чтобы убедиться, что все свойства определенных типов (примитив, коллекция или объект) установлены. В большинстве сценариев вам просто нужно убедиться, что определенное свойство установлено, но не все свойства.

В этом случае вам понадобится аннотация@Required, см. Следующий пример:

@ Требуемый пример

Объект Customer, примените @Required в методе setPerson (), чтобы убедиться, что свойство person установлено.

package com.example.common;

import org.springframework.beans.factory.annotation.Required;

public class Customer
{
    private Person person;
    private int type;
    private String action;

    public Person getPerson() {
        return person;
    }
    @Required
    public void setPerson(Person person) {
        this.person = person;
    }
}

Простое применение аннотации @Required не приведет к принудительной проверке свойств, вам также необходимо зарегистрироватьRequiredAnnotationBeanPostProcessor, чтобы знать об аннотации @Required в файле конфигурации bean-компонента.

RequiredAnnotationBeanPostProcessor можно включить двумя способами.

1. Включить

Добавьте контекст Spring и в файл конфигурации компонента.


    ...
    
    ...

Полный пример,



    

    
        
        
    

    
        
        
        
    

2. Включить RequiredAnnotationBeanPostProcessor

Включите «RequiredAnnotationBeanPostProcessor» непосредственно в файл конфигурации компонента.





    
        
        
    

    
        
        
        
    

Если вы запустите его, будет выдано следующее сообщение об ошибке, поскольку свойство person не установлено.

org.springframework.beans.factory.BeanInitializationException:
    Property 'person' is required for bean 'CustomerBean'

Заключение

Попробуйте аннотацию @Required, она более гибкая, чем проверка зависимостей в XML-файле, поскольку она может применяться только к определенному свойству.

Custom @Required
Прочтите эту статью оhow to create a new custom @Required-style annotation.