将春季@Autowired字段设置为私有字段是否是一种好习惯



将 Spring 中的 @Autowired 字段设置为 DI 提案的私有字段是一种好习惯吗?

我认为这应该是因为没有人愿意直接在类之外访问这些字段。

但另一方面,Spring需要访问这些。我知道当他们是私人的时,它也可以这样做,但它会不会引起麻烦?例如性能问题?(如果我理解得很好,在这种情况下,Spring 使用反射,这可能会导致性能的小幅下降。还是这无关紧要?

我用谷歌搜索并阅读了搜索这个问题答案的教程,但我没有找到任何"好"的答案。

作为这些字段的访问修饰符,哪个是最佳选择?你能帮我理解这一点或向我指出一个资源,我可以在哪里开始找到答案吗?

当您将一个对象标记为自动连线时,您说的是处理该对象值的容器,因此您只需将其设置为通过容器公开访问。因此,它已经被定义为公共和单例:这意味着您可以将引用设置为私有,以便无法在类外部访问它,但其值仍可通过容器访问。如果你想把这些变量设置为私有,这不会伤害你,但显然这不是法律,因为它总是取决于你的需求。如果你正在看表演,请确保私人或公共不会改变任何事情。请务必选择正确的示波器(单例,原型...),这将有所帮助。如果您需要更多信息,请阅读以下问题:

@autowired注释如何适用于私有字段?

Spring 注释@Autowired如何工作?

为什么 Spring 中的 @autowired 不需要私有实例变量的 setter 方法?

最新更新