Уже знаем несколько способов придать объекты в класс, в рамках проекта Spring, как аннотировать с @Autowired атрибут класса или конструктор.
Но, недавно, я узнал больше 2 интересные формы, которые исключают часть исходного кода, который я покажу вам ниже, оба с помощью Lombok.
1 форма: @AllArgsConstructor
О Ломбоке поссуи аннотацию AllArgsConstructor
, который создает конструктор со всеми атрибутами класса. Но, используя атрибут annotation onConstructor
, позволяет вам указать, какой annotation должна быть включена в конструктор, созданный:
@RestController @AllArgsConstructor(onConstructor = @__(@Autowired)) public class UserController { private UserService userService; private Profession professionService; /* * Ao invés de usar assim: * * @Autowired * private UserService userService; * * @Autowired * private Profession professionService; * */ }
2 форма для заполнения: @RequiredArgsConstructor
Просто аннотировать класс с annotation @RequiredArgsConstructor
, который создает конструктор со всеми атрибутами конце класса. Так, Spring впрыскивает для нас все обязательные зависимости.
@RestController @RequiredArgsConstructor public class UserController { private final UserService userService; private final Profession professionService; /* * Ao invés de usar assim: * * @Autowired * private UserService userService; * * @Autowired * private Profession professionService; * */ }
Напоминание!
Создать строителей в абстрактных классов заставляет вас создавать конструкторы в классах дочери, вызвав конструктор родительского класса.
Характеристика
Оригинал: “https://dev.to/leilasoliveira/injecao-de-dependencias-com-spring-e-lombok-akd”