Spring Autowiring – Constructor Injection

Facebooktwitterredditpinterestlinkedinmailby feather

Spring Autowiring – Constructor Injection

We have previously discussed an example of Constructor Dependency Injection (CDI) using an XML-based configuration. In the previous case, we have defined the reference of the constructor in the bean-config file (applicationContext.xml).

Need for autowiring by Constructor Injection

If more than one constructor or bean is available for dependency injection, it creates a lot of confusion inside the bean-config file. To reduce the lines of code in the bean-config file, we are using the annotation-based Constructor Dependency Injection (CDI). It is also known as Auto-wiring by CDI.

To create an example of Constructor Dependency Injection using auto-wiring, we use the following annotations:

@Component – We have discussed @Component annotation in our previous tutorials. It is used to create a class as a component.

@Autowired The @Autowired annotation is used to inject the dependencies automatically.

Example of Autowiring using Constructor Injection

In this example, we have created an interface and the component class. The Fortune.java and Coach.java are the interfaces that consist of the unimplemented methods. The GoodLuckFortune.java and Cricket_Coach.java are two Component classes that implement the Fortune.java and Coach.java, respectively.

Following are the steps to create an example of CDI using @Autowired:

Fortune.java

GoodLuckFortune.java

Coach.java

Cricket_Coach.java

In the above code, we have defined the @Autowired annotation just above the constructor as we are doing the Constructor Dependency Injection.

applicationContext.xml

App.java

OUTPUT

applicationContext.xml

Facebooktwitterredditpinterestlinkedinmailby feather