我有下面这样的服务
@Service
public class A {
public B data() {
InterfaceA B = (codition) ? new B1() : new B2();
B.check();
}
}
@Service
public class B1 {
@Autowired
private B1Repo b1repo;//repository
public B1 check() {
b1repo.find();
}
}
当我运行服务时 A.data()
我明白了 b1repo
为空。存储库没有自动连接,因为我正在使用 new
关键字。我已经检查了以下问题相关的问题
但这并没有帮助我解决问题
2条答案
按热度按时间laximzn51#
当你在SpringBoot中应用d依赖反转原理的实体原理时。这也许对你有帮助。
tkqqtvp12#
spring框架创建所有组件示例本身并填充所有必需的自动连接属性。这称为依赖注入。创建服务类的新示例时,它是没有自动连线的原始示例。
如果您必须在某种条件下实现服务,我建议您使用spring概要文件