Spring doesn’t recommend @Autowired anymore???

There are 3 ways we can inject dependencies and Field Injection is not recommended anymore.

Photo by Luigi Pozzoli on Unsplash

In Spring, dependency injection is a fundamental concept used to manage the lifecycle and dependencies of beans. @Autowired is a common way to inject dependencies into Spring-managed components.

When we run the code analysis tool in the IDE, it may issue the “Field injection is not recommended” warning for fields with the @Autowired annotation

However, there are other ways to achieve the same goal, and Spring has evolved its best practices over time. Here are the different methods and the reasons why Spring might not recommend @Autowired as strongly anymore:

3 Methods to Autowire in Spring

Constructor Injection:

@Service
public class MyService {
private final MyRepository myRepository;

public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
}

Pros:

  • Encourages immutability and makes dependencies explicit.
  • Ensures that the bean is fully initialized with its required dependencies.
  • Easier to write unit tests for.

2. Setter Injection:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima