Using DI in Spring Boot
Spring Boot scans your application classes and registers classes with certain annotations (@Service
, @Repository
, and @Controller
) as Spring beans. These beans can then be injected using an @Autowired
annotation:
public class Car { @Autowired private Owner owner; ... }
A fairly common situation is where we need database access for some operations, and, in Spring Boot, we use repository classes for that. In this situation, we can inject the repository class and start to use its methods:
public class Car { @Autowired private CarRepository carRepository; // Fetch all cars from db carRepositoty.findAll(); ... }
Java (javax.annotation
) also provides an @Resource
annotation that can be used to inject resources. You can define the name or type of the injected bean when using the @Resource
annotation. For example, the following code shows some use cases. Imagine that we have...