Цель использования метода set в приведенном ниже фрагменте кода - PullRequest
0 голосов
/ 21 июня 2019

Я проходил учебник по 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;
    }

Спасибо

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Я полагаю, что этот метод установки не имеет значения, если вы используете пружинное внедрение зависимостей, чтобы установить зависимость от свойства класса. Это то, что происходит с EmployeeRestController с помощью @Autowired аннотации к свойству службы служащего private EmployeeService employeeService; Вы также можете использовать внедрение зависимостей на уровне установщика следующим образом

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

Хорошей и рекомендуемой практикой является использование @Autowired на установщике вместо личных свойств.

0 голосов
/ 21 июня 2019

если вы использовали @Autowired, то нет необходимости в setmethod, поэтому см. Код ниже:

@Controller
public class EmployeeRestController {
private Logger logger = LoggerFactory.getLogger(EmployeeRestController.class);

@Autowired
private EmployeeService employeeService;
    } 

@Service
public class EmployeeService{
 }
...