@autowired与@resouce的区别
时间: 2023-09-23 09:07:55 浏览: 78
@autowired和@resource都是Spring框架中用于注入依赖的注解,但它们有一些区别。
1. @Autowired注解:
@Autowired注解是Spring框架的注入注解之一,它可以自动连接Spring容器中符合类型的bean对象,并把它注入到需要依赖的地方。它可以用在构造器、成员变量、方法和参数上。
例如:
@Autowired
private UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
2. @Resource注解:
@Resource注解是JDK提供的注入注解,它可以根据属性名或者指定名称来注入依赖的bean。它不能用在构造器上,并且默认按照名称进行匹配。
例如:
@Resource
private UserService userService;
@Resource(name = "userService")
public void setUserService(UserService userService) {
this.userService = userService;
}
总的来说,@Autowired是Spring特有的注解,而@Resource是Java标准的注解。@Autowired通过类型匹配,@Resource通过名称匹配。另外,@Autowired可以按照名称进行限定,@Resource也可以通过指定name属性来指定具体的bean。在实际使用中,根据具体情况选择使用哪个注解。
阅读全文