我有一个bean Config
,它有一个必需的setter。但是,当我没有在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{...}
如果我不包含matchSets
的{{1}}字段,我会收到BeanInitializationException。但是如果我没有设置OtherClass
的{{1}}字段,我就不会得到例外。我将sections
的实例作为传递给Config
的{{1}}列表的其中一个元素传递。
我使用单元测试(SpringJUnit4ClassRunner)并使用我的main(ClassPathXmlApplicationContext)尝试了这个,并且在任何一种情况下行为都是相同的。
为什么没有为Config
检查@Required属性?是因为它是作为MatchSet
传递的吗?
由于
答案 0 :(得分:0)
原来这是由不同的问题引起的。我没有正确设置getter / setter。首先,这是因为我试图设置方法链,因此没有从setter返回null
。另外,我在设置中接受了List
,但是从getter返回ImmutableList
。该组合导致Spring无法识别setter,因此无法检查