💡 Java-совет: выбирай constructor injection вместо field injection
💡 Java-совет: выбирай constructor injection вместо field injection Во многих проектах до сих пор можно встретить такое: @Component public class UserController { @Autowired private Logger logger; public void createUser(String username) { ... } } Работает, но хуже тестируется и прячет зависимости «за кулисами». Гораздо лучше - передавать зависимости через конструктор: @Component public class UserController { private final Logger logger; @Autowired public UserController(Logger logger) { this.logger = logger; } } Почему это лучше: • зависимости явно видны • класс становится иммутабельным • проще писать unit-тесты (можно подставить fake/mock) • меньше сюрпризов при инициализации Spring-контейнера Итог: если нет веской причины - предпочитай constructor injection 👍