使用@Autowired被认为是一种好习惯吗?

时间:2015-09-30 19:57:35

标签: java spring autowired

我有一个问题困扰了我一段时间,因为我无法找到明确的答案,所以我决定在这里提问。

使用@Autowired是一种好习惯吗?换句话说,对生产代码使用自动装配是否有意义,或者我应该将其视为“非常好”的东西。对于轻型项目,但不适用于严肃的业务"?或者只是意见问题?

我一直觉得通过自动装配开发人员基本上放弃提供一个明确的"注入规则集,依赖于框架来正确地执行它。我可能听起来很保守,但这对我来说听起来不是一个好的设计决定。

2 个答案:

答案 0 :(得分:1)

在生产代码中使用@Autowired注释没有任何问题。

您可以使用ApplicationContext以及注释本身的某些属性(例如必需)控制注射。因此,开发人员肯定不会“放弃”控制注入事物的方式。

我使用Autowired的论点是,您可以修改一个配置并更改Autowired注入类的所有实例。这可以使重构普通类的痛苦少得多。

答案 1 :(得分:0)

生产中@Autowired当然没有错。它的存在是为了让你不必编写生产线路代码,这些代码保证充满了bug,远远不及Spring / Guice。

  

我可能听起来很保守,但这听起来并不像一个好的设计   我的决定。

我想说实施自己的DI框架是一个更糟糕的设计决策!

确保始终使用@Autowired的构造函数注入。我会说现场级自动布线仅适用于测试依赖性。我通常也会使用JSR-330 @Inject而不是@Autowired