1
我有一个bean Config
有一个必需的setter。但是,当我没有在bean配置文件中设置设置时,我没有得到有关缺少属性的异常。@需要的属性检查一个bean,但不是另一个
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{...}
如果我不包括OtherClass
的matchSets
场,我收到了BeanInitializationException。但是,如果我不设置sections
字段Config
我没有得到例外。我传递Config
的实例作为传递给OtherClass
的MatchSet
列表的元素之一。
我试过这个使用单元测试(SpringJUnit4ClassRunner)和使用我的主(ClassPathXmlApplicationContext)和行为是相同的两种情况下。
为什么不需要检查Config
的@Required属性?是否因为它被通过为MatchSet
?
谢谢
原来这是由不同的问题引起的。我没有正确设置getter/setter。主要是,这是因为我试图设置方法链,所以没有从setter中返回null。另外,我在设置中接受了一个List,但是从getter返回一个ImmutableList。这个组合导致Spring无法识别setter,因此不检查@Required属性。 –