2009-05-05 60 views
10

我看到Spring有一个@Required注解,用于在bean中标记必须设置的成员变量。Spring's @Required注释的推荐用法

是否有使用此最佳做法?例如,在构造函数中设置这些值并明确需要这些参数(尤其是在Spring外部使用时)可能会更好吗?

谢谢!

回答

8

虽然没有直接提及@Required注释,Martin Fowler的提供this advice ...

他喜欢设定在构造函数,而不是制定者对象的值,因为它会“给你一个明确的说法意思是在一个明显的地方创建一个有效的对象“,而它也”“允许你通过简单地不提供设置器来清楚地隐藏任何不可改变的字段。

+3

此外,在构造函数中设置/实例化变量允许您将它们声明为final。最终的变量,以及明确的使用意图(如您所建议的),是实现不变性的一个步骤(如果您的对象需要线程安全,则是值得的)。 – CaptainHastings 2011-07-20 21:01:56