春季@Autowired字段 - 哪个访问修饰符,私有或包私有?
2022-09-01 23:19:54
假设我们对类中的各种字段使用注释,并且我们没有编写也可以设置字段的 setter 或构造函数。@Autowired
问题 - 访问修饰符应该是什么,或者(即没有)?private
package-private
例如:
public class MyClass {
@Autowired
private MyService myService;
}
与
public class MyClass {
@Autowired
MyService myService;
}
在第一种情况下(场),Spring使用反射来连接场,即使它没有设置器。private
第二种情况(字段)允许我们能够访问这些字段(例如,设置模拟),如果我们需要扩展类以进行测试。package-private
因此,这两种情况都运行良好,但哪种情况更值得推荐,特别是在测试方面?