Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
Selected Reading
Difference between @Inject and @Autowired
@Inject and @Autowired both annotations are used for autowiring in your application.
@Inject annotation is part of Java CDI which was introduced in Java 6, whereas @Autowire annotation is part of spring framework. Both annotations fulfill same purpose therefore, anything of these we can use in our application.
| Sr. No. | Key | @Inject | @Autowired |
|---|---|---|---|
| 1 |
Basic |
It is part of Java CDI |
It is part of Spring framework |
| 2 |
Required |
It has no required attribute |
It has required attribute |
| 3 |
Default Scope |
Default scope of the autowired beans is Singleton |
Default scope of the inject beans is prototype |
| 4 |
Ambiguity |
In case of ambiguity in beans for injection then @Named qualifier should be added in your code. |
In case of ambiguity in beans for injection then @Qualifer qualifier should be added in your code. |
| 5 |
Advantage |
It is a part of Java CDI so it is not dependent on any DI framework. It makes your system loosely coupled. |
It makes your application tightly coupled with Spring framework. In the future , if you want to move to another DI framework then you need reconfigure your application. |
Example of @Injection annotation
public class InjectionExample {
@Inject
private CarBean carbean;
}
Example of @Autowired annotation
public class AutowiredExample {
@Autowired
private CarBean carbean;
} Advertisements
