Junior — Middle
What methods can be used to implement dependency injection in Spring?
sobes.tech AI
Answer from AI
Dependency injection in Spring can be implemented in the following ways:
- Through constructor — dependencies are passed via the class constructor parameters. This is the preferred method as it makes dependencies mandatory and simplifies testing.
@Component
public class Service {
private final Repository repository;
@Autowired
public Service(Repository repository) {
this.repository = repository;
}
}
- Through setters (setter injection) — dependencies are set via setter methods annotated with
@Autowired.
@Component
public class Service {
private Repository repository;
@Autowired
public void setRepository(Repository repository) {
this.repository = repository;
}
}
- Through fields (field injection) — dependencies are injected directly into class fields using
@Autowired.
@Component
public class Service {
@Autowired
private Repository repository;
}
Field injection is simpler but less flexible and more difficult to test.
You can also use XML configuration, but in modern projects, annotations and Java configuration are preferred.