5

我有两个要设置的服务和一个控制器,如下所示:

控制器类:

@Controller
public class MyController {

   @Autowired
   IMyService1 service;
}

服务二:

@Service
public class MyService2 implements IMyService2 {   }

服务一:

@Service
public class MyService1 implements IMyService1 {

   @Autowired
   IMyService2 myService2;  // this bean is not getting created
}

beans.xml 中的所有内容都已正确设置,以便在组件扫描中获取组件,并且所有内容都在同一个基本包下。

第一个服务已正确注入到 Controller 类中,但第二个服务未能注入 (BeanCreationException) 到第一个服务中。

有没有人遇到过这个问题或关于我在这里可能做错的任何想法/建议?

4

1 回答 1

0

我对该主题进行了一些研究,但找不到解决此问题的答案,我只能在没有@Service注释的情况下动态实例化第二个服务。

管制员:别碰,都一样

@Controller
public class MyController {
   @Autowired
   IMyService1 service;
}

服务 2:@Service从第二个服务中移除

public class MyService2 implements IMyService2 {
    public void doSomething() {
        // your code
    }
}

服务 1:删除@Autowired并动态实例化您的第二个服务

@Service
public class MyService1 implements IMyService1 {
   public void actionWithService2() {
       new MyService2().doSomething();
   }
}
于 2020-05-05T17:42:39.677 回答