복붙노트

[SPRING] 스프링에 콩이 없다면 빈 콜렉션을 쉽게 불러올 수 있습니까?

SPRING

스프링에 콩이 없다면 빈 콜렉션을 쉽게 불러올 수 있습니까?

@Autowired List beans가있는 경우; SomeBeanClass의 어떤 콩도, 나는 얻는다 :

추가 (required = false)하면 빈에 대해 null이 반환됩니다. 하지만 null 검사가 필요한 오류가 발생하기 쉬운 솔루션처럼 보입니다.

콩이없는 경우 빈 모음을 자동으로 불러오는 쉬운 방법이 있습니까?

해결법

  1. ==============================

    1.필드가 명시 적으로 null로 설정 되었습니까? 아니면 단순히 설정되지 않습니다. 이니셜 라이저 표현식을 추가해보십시오.

    필드가 명시 적으로 null로 설정 되었습니까? 아니면 단순히 설정되지 않습니다. 이니셜 라이저 표현식을 추가해보십시오.

    @Autowired List<SomeBeanClass> beans = new ArrayList<>();
    
  2. ==============================

    2.Spring 4 및 Java 8에는 몇 가지 옵션이 있습니다.

    Spring 4 및 Java 8에는 몇 가지 옵션이 있습니다.

    @Autowired(required=false)
    private List<Foo> providers = new ArrayList<>();
    

    java.util.Optional을 생성자와 함께 사용할 수도 있습니다.

    @Autowired
    public MyClass(Optional<List<Foo>> opFoo) {
        this.foo = opFoo.orElseGet(ArrayList::new);
    }
    

    Optional > opFoo;로 필드를 autowire 할 수도 있어야하지만 아직 사용하지 않았습니다.

  3. from https://stackoverflow.com/questions/19299114/is-there-an-easy-way-to-autowire-empty-collection-if-no-beans-present-in-spring by cc-by-sa and MIT license