我正在阅读Spring教程,发现以下代码片段:
public class EmployeeRestController {
private Logger logger = LoggerFactory.getLogger(EmployeeRestController.class);
@Autowired
private EmployeeService employeeService;
public void setEmployeeService(EmployeeService employeeService) {
this.employeeService = employeeService;
}
}
我的问题是,即使没有调用此方法,为什么还要使用此方法。
public void setEmployeeService(EmployeeService employeeService) {
this.employeeService = employeeService;
}
谢谢
答案 0 :(得分:1)
我相信,如果您使用spring依赖注入来设置对类属性的依赖,则此setter方法没有任何意义。通过对员工服务属性EmployeeRestController
使用@Autowired
批注,private EmployeeService employeeService;
就是这种情况。您还可以通过这种方式使用setter级别依赖项注入
@Autowired
public void setEmployeeService(EmployeeService employeeService) {
this.employeeService = employeeService;
}
在setter上使用@Autowired
而不是私有属性是一个很好的建议做法。
答案 1 :(得分:0)
如果您已使用@Autowired,则不需要setmethod,因此请参考以下代码:
@Controller
public class EmployeeRestController {
private Logger logger = LoggerFactory.getLogger(EmployeeRestController.class);
@Autowired
private EmployeeService employeeService;
}
@Service
public class EmployeeService{
}