Spring的@Required注释的推荐用法

Vin*_*nie 10 java spring

我看到Spring有一个@Required注释来标记必须设置的bean中的成员变量.

有使用它的最佳做法吗?

例如,可能最好在构造函数中设置这些值并明确要求这些参数(特别是在Spring之外使用时)?

谢谢!

Vin*_*nie 13

虽然没有直接引用@Required注释,但Martin Fowler提供了这个建议 ......

他更喜欢在构造函数中而不是在setter中设置对象值,因为它会" 明确说明在明显的地方创建有效对象意味着什么 ",同时它" 允许您清楚地隐藏任何不可变的字段"通过简单地不提供制定者 ".

  • 此外,在构造函数中设置/实例化变量允许您将它们声明为final.最终变量,以及提供明确的使用意图(如您所建议的),是实现不变性的一步(如果您的对象需要线程安全,则值得). (3认同)