为什么@Autowired在我的控制器中工作但在我的服务中没有?

时间:2011-07-06 21:58:22

标签: java spring service spring-mvc autowired

MyController中,@Autowired可以在没有getter / setter的情况下提取myService

@Controller
public class MyController
{
    @Autowired
    private MyService myService;

但是,当我尝试将@Autowired注释应用于myOtherService的{​​{1}}字段时,我收到一条错误消息,指出它无法为{{1}找到必要的setter方法} - 但如果我填写此字段的getter和setter方法,它就可以工作:

这项工作:

MyService

这不起作用:

myOtherService

@Service public class MyService { private MyOtherService myOtherService; public void setMyOtherService(MyOtherService myOtherService) { this.myOtherService = myOtherService; } public MyOtherService getMyOtherService() { return myOtherService; } 仅适用于控制器吗?

1 个答案:

答案 0 :(得分:3)

你给出了答案 - 你没有<context:component-scan />来获得服务包。如果您添加它,您将拥有注释自动装配