在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;
}
仅适用于控制器吗?
答案 0 :(得分:3)
你给出了答案 - 你没有<context:component-scan />
来获得服务包。如果您添加它,您将拥有注释自动装配