让一个 Spring bean 继承另一个 bean 是一种好习惯吗?
Is it a good practice to make one Spring bean inherit another one?
在我的Spring Boot web 应用程序中有两个bean,其中一个继承了另一个并且都实现了一个接口。这条线:
@Component
public class A implements SomeInterface {
// ....
}
@Component
public class B extends A implements SomeInterface {
// ....
}
让一个 bean 扩展另一个 bean 是个好主意还是最好使用装饰器?为什么?
我指的不是任何具体情况,而是一般情况。
不能,因为如果你通过接口或超级注入它会失败class。如果你现在注入 A 它是不明确的。
询问这是否是好的做法是一个模棱两可的问题,只能真正收集意见。
使用接口的一种方法是 @Autowire
实现的所有实例 类 并在每个实例上调用一个方法
@Autowired
List<SomeInterface> someInterfaces;
public void someAction(SomeObject object) {
for(SomeInterface someInterface: someInterfaces) {
someInterface.doSomething(object);
}
}
在我的Spring Boot web 应用程序中有两个bean,其中一个继承了另一个并且都实现了一个接口。这条线:
@Component
public class A implements SomeInterface {
// ....
}
@Component
public class B extends A implements SomeInterface {
// ....
}
让一个 bean 扩展另一个 bean 是个好主意还是最好使用装饰器?为什么?
我指的不是任何具体情况,而是一般情况。
不能,因为如果你通过接口或超级注入它会失败class。如果你现在注入 A 它是不明确的。
询问这是否是好的做法是一个模棱两可的问题,只能真正收集意见。
使用接口的一种方法是 @Autowire
实现的所有实例 类 并在每个实例上调用一个方法
@Autowired
List<SomeInterface> someInterfaces;
public void someAction(SomeObject object) {
for(SomeInterface someInterface: someInterfaces) {
someInterface.doSomething(object);
}
}