@Inject是JSR-330(依赖注入)标准化引入的一种依赖注入注解,与Spring的@Autowired注解具有相同的功能,也用于标记哪些类或者属性需要进行注入。@Inject可以用在构造方法、Setter方法和属性上。
与@Autowired不同,@Inject并不是Spring特有的注解,它在Java EE6规范之后被包含在了Java的标准库中,从而成为了一种使用广泛的依赖注入注解,并且在Dependency Injection for Java(CDI)技术中也被广泛使用。
@Inject使用方法如下:
标记在构造方法上
public class UserService {
private final UserDao userDao;
@Inject
public UserService(UserDao userDao) {
this.userDao = userDao;
}
}
标记在Setter方法上
public class UserService {
private UserDao userDao;
@Inject
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
标记在属性上
public class UserService {
@Inject
private UserDao userDao;
}
需要注意的是,使用@Inject注解需要在项目中添加依赖。
javax.inject
javax.inject
1