我有一个抽象类,它自动装配一些 bean,例如一个存储库:
public abstract class A {
@Autowired
private ARepository aRepository;
protected void useRepository() {
aRepository.doSomething();
}
}
这个抽象类使用该存储库来处理某些方法。现在我还有一个子类,它扩展类A并且还有一个方法,它使用ARepository.
public class B extends A {
private void useRepositoryAgain() {
aRepository.doSomething();
}
}
现在我的问题:
我怎么看有两种方法可以做到这一点:
1:B再次在课堂上自动装配存储库:
public class B extends A {
@Autowired
private ARepository aRepository;
...
}
2:在A类中创建getter方法:
public abstract class A {
...
public ARepository getARepository() {
return this.aRepository;
}
}
public class B extends A {
private void useRepositoryAgain() {
getARepository().doSomething();
}
}
根据我的理解,两者之间应该没有区别,因为再次自动装配存储库只会返回它的相同实例。
我的理解是否正确,或者我缺少的两种方法之间是否存在显着差异?
SMILET
相关分类