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

时间:2012-10-10 16:49:38

标签: spring dependency-injection annotations javabeans

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

控制器类:

@Controller
public class MyController {

   @Autowired
   IMyService1 service;
}

服务2:

@Service
public class MyService2 implements IMyService2 {   }

服务1:

@Service
public class MyService1 implements IMyService1 {

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

在beans.xml中正确设置了所有内容以在组件扫描中获取组件,并且所有内容都在相同的基础包下。

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

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

1 个答案:

答案 0 :(得分: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();
   }
}