필요한 설정자가있는 빈 Config
이 있습니다. 그러나 Bean 설정 파일에서 설정을 지정하지 않으면 누락 된 속성에 대한 예외가 발생하지 않습니다. 내가 OtherClass
의 matchSets
필드를 포함하지 않는 경우하나의 빈에 대해 @ 필수 속성이 확인되었지만 다른 빈에 대해서는 확인되지 않았습니다.
public class Config extends MatchSet{
...
@Required
public void setSections(List<Section> section){...}
}
public class OtherClass{
...
@Required
public void setMatchSets(List<MatchSet> sets){...}
}
public interface MatchSet{...}
은 내가 BeanInitializationException를 얻을. 그러나 sections
필드를 Config
으로 설정하지 않으면 예외가 발생하지 않습니다. OtherClass
에 전달 된 MatchSet
목록의 요소 중 하나로 Config
의 인스턴스를 전달하고 있습니다.
단위 테스트 (SpringJUnit4ClassRunner)를 사용하고 내 main (ClassPathXmlApplicationContext)을 사용하여이 작업을 시도했으며 동작은 두 경우 모두 동일합니다.
@Required 속성이 Config
으로 확인되지 않는 이유는 무엇입니까? 그것은 MatchSet
으로 전달 되었기 때문입니까?
감사합니다.
다른 문제가 원인이었습니다. getter/setter가 제대로 설정되지 않았습니다. 주로, 이것은 메소드 체이닝을 설정하려고했기 때문에 setter로부터 null을 리턴하지 못하기 때문입니다. 또한, 설정에서 목록을 수락했지만 getter에서 ImmutableList를 반환했습니다. 이 조합으로 인해 Spring은 setter를 인식하지 못하므로 @Required 특성을 검사하지 않습니다. –