【问题标题】:How can I inject a service into another one in Java, SpringBoot? [duplicate]java - 如何在Java SpringBoot中将服务注入另一个服务? [复制]
【发布时间】:2021-06-09 19:35:44
【问题描述】:

您好,我一直在尝试将一项服务用于另一项服务,但我得到了 null。有谁知道我怎样才能正确注射它? (我的 ClassServiceB 有它的 @Service 注解)

这是我的服务类...

@Service
public class ClassServiceAImpl implements ClassServiceA {

   @Autowired
   ClassServiceB classServiceB;

   @Override
   public ClassOutDto searchDriverForOrder(InputDto inputDto ) {

   classServiceB.doSomething(); //In this part classServiceB is getting null

   ...
}

【问题讨论】:

  • 您可能没有激活或没有正确配置包扫描。
  • 谢谢你们,我的错误是在 BI 类中没有注入我的 DAO 类... @Service public class ClassServiceBImpl implements ClassServiceB{ private ClassBDao classBDao;....}

标签: java spring spring-boot hibernate jpa


【解决方案1】:

您是否尝试在构造函数类中使用@Autowired?当您想要进行单元测试并且进行注入的建议取决于时,它会更容易。会是这样的:

       @Service
       public class ClassServiceAImpl implements ClassServiceA {
    
       private ClassServiceB classServiceB;
    
       @Autowired
       public ClassServiceAImpl(ClassServiceB classServiceB) {
          this.classServiceB = classServiceB;
       }
    
       @Override
       public ClassOutDto searchDriverForOrder(InputDto inputDto ) {

       classServiceB.doSomething(); //In this part classServiceB is getting null
       ...
     }
   }

不要忘记您的 ClassServiceB 也必须使用 @Service 进行注释。你的界面不应该被评价。如果这没有帮助,请分享更多属性、接口和 ClassServiceB。

【讨论】:

  • 谢谢,好吧,我的错误是在 BI 类中没有注入我的 DAO 类...@Service public class ClassServiceBImpl implements ClassServiceB{ private ClassBDao classBDao;....}跨度>
猜你喜欢
  • 2013-12-22
  • 2014-01-27
  • 1970-01-01
  • 2023-03-16
  • 2017-01-17
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多