我正在阅读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;
    }


谢谢

最佳答案

我相信,如果您使用spring依赖注入来设置对类属性的依赖,则此setter方法没有任何意义。这是通过对员工服务属性EmployeeRestController使用@Autowired批注对private EmployeeService employeeService;进行的操作,您还可以通过以下方式使用setter级别依赖项注入

 @Autowired
 public void setEmployeeService(EmployeeService employeeService) {
        this.employeeService = employeeService;
    }


在setter上使用@Autowired而不是私有属性是一个很好的建议做法。

10-08 13:16