Spring 在另一个服务中注入服务

Mat*_*att 5 spring annotations dependency-injection javabeans

我有两个服务和一个控制器,我正在尝试设置,如下所示:

控制器类:

@Controller
public class MyController {

   @Autowired
   IMyService1 service;
}
Run Code Online (Sandbox Code Playgroud)

服务二:

@Service
public class MyService2 implements IMyService2 {   }
Run Code Online (Sandbox Code Playgroud)

服务一:

@Service
public class MyService1 implements IMyService1 {

   @Autowired
   IMyService2 myService2;  // this bean is not getting created
}
Run Code Online (Sandbox Code Playgroud)

beans.xml 中的所有内容均已正确设置,以在组件扫描中拾取组件,并且所有内容都位于同一基础包下。

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

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

ℛɑƒ*_*ƒæĿ 0

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

控制器:别碰,都是一样的

@Controller
public class MyController {
   @Autowired
   IMyService1 service;
}
Run Code Online (Sandbox Code Playgroud)

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

public class MyService2 implements IMyService2 {
    public void doSomething() {
        // your code
    }
}
Run Code Online (Sandbox Code Playgroud)

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

@Service
public class MyService1 implements IMyService1 {
   public void actionWithService2() {
       new MyService2().doSomething();
   }
}
Run Code Online (Sandbox Code Playgroud)