2011-08-24 116 views
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{...} 

如果我不包括OtherClassmatchSets场,我收到了BeanInitializationException。但是,如果我不设置sections字段Config我没有得到例外。我传递Config的实例作为传递给OtherClassMatchSet列表的元素之一。

我试过这个使用单元测试(SpringJUnit4ClassRunner)和使用我的主(ClassPathXmlApplicationContext)和行为是相同的两种情况下。

为什么不需要检查Config的@Required属性?是否因为它被通过为MatchSet

谢谢

+0

原来这是由不同的问题引起的。我没有正确设置getter/setter。主要是,这是因为我试图设置方法链,所以没有从setter中返回null。另外,我在设置中接受了一个List,但是从getter返回一个ImmutableList。这个组合导致Spring无法识别setter,因此不检查@Required属性。 –

回答

0

原来这是由不同的问题引起的。我没有正确设置getter/setter。主要是,这是因为我试图设置方法链,所以没有返回来自setter的null。另外,我在设置中接受List,但是从吸气者返回ImmutableList。这个组合导致Spring不承认二传手,因此不检查

相关问题