@Autowired Annotation in spring

Tutorial Content: Spring tutorial for beginners

The @Autowired annotation provides control over where and how autowiring can be done.This annotations can be done on setter method,contructor or property.We will see each in detail with example.

@Autowired on setter methods:

By default,whereever spring containers finds @autowire notation,it autowires bean byType. You can use @Autowire annotation on setter method to get rid of  tag in XML configuration file.

Example:

For configuring spring in your eclipse ide please refer hello world example

1.Country.java:

This is simple pojo class having some attributes so here country has name and object of Capital class.
Create Country.java under package org.arpit.javapostsforlearning.Copy following content into Country.java.

2.Capital.java

This is also simple pojo class having one attribute called “capitalName”.

Create Capital.java under package org.arpit.javapostsforlearning.java.Above Country class contains object of this class.Copy following content into Capital.java

3.AutowiredAnnotationInSpringMain.java

This class contains main function.Create AutowiredAnnotationInSpringMain.java under package org.arpit.javapostsforlearning.Copy following content into AutowiredAnnotationInSpringMain.java

4.ApplicationContext.xml


As you can see there is no relationship between above two beans,but we have used @autowired annotation which will automatically wire above beans on the basis of type.

5.Run it:

When you will run above application,you will get following as output.

@Autowired on properties:

you can use @Autowired on property to get rid of setter method.Spring container automatically assign values to corresponding attributes.You don’t need setter methods for that.Make following changes to above code:

Country.java:

Run it:

When you will run above application,you will get following as output.

@Autowired on Constructor:

you can use @autowired on constructor also and it will work even if you didn’t define tag in XML configuration file.Make following changes to above code:

Country.java:

ApplicationContext.xml

Run it:

When you will run above application,you will get following as output.

@Autowired with Arugments:

By default,dependency is required in the case of @Autowired like @Required but you can turn off it by passing required=false to @Autowired as argument.

Country.java:

Now it will run even if you don’t provide capital bean in XML configuration.

Add Comment