介绍网站建设规划书结构,医疗器械网站制作,济南网站建设公司晟创未来,适合前端做项目的网站文章目录 简介Autowired注解什么是Autowired注解Autowired注解的使用方式Autowired注解的优势和不足 Qualifier总结#xff1a; Resource注解什么是Resource注解Resource注解的使用方式Resource注解的优势和不足 Autowired vs ResourceAutowired和Resource的区别为什么推荐使用… 文章目录 简介Autowired注解什么是Autowired注解Autowired注解的使用方式Autowired注解的优势和不足 Qualifier总结 Resource注解什么是Resource注解Resource注解的使用方式Resource注解的优势和不足 Autowired vs ResourceAutowired和Resource的区别为什么推荐使用Resource选择适合场景的注解 总结 简介
Autowired和Resource是Java Spring框架中用于依赖注入的注解。本文将介绍它们的定义、使用方式以及区别帮助读者正确使用这两个注解。
Autowired注解
什么是Autowired注解
Autowired是一个Spring特有的注解用于自动装配Bean。它可以标记在字段、构造方法、Setter方法或者普通方法上告诉Spring容器需要自动注入相关的依赖。
Autowired注解的使用方式
使用Autowired注解的方式有以下几种
字段注入
Autowired
private UserService userService;构造方法注入
Autowired
public UserController(UserService userService) {this.userService userService;
}Setter方法注入
private UserService userService;Autowired
public void setUserService(UserService userService) {this.userService userService;
}方法注入
Autowired
public void init(UserService userService) {this.userService userService;
}Autowired注解的优势和不足
优势
自动生成Bean的实例简化了代码的编写。提高了代码的可读性和可维护性。
不足
如果有多个符合条件的Bean存在会产生歧义需要进一步指定匹配规则。
Qualifier
Qualifier注解是Spring框架提供的用于解决依赖注入歧义性的注解。当存在多个符合条件的Bean时可以结合Autowired或Resource注解使用Qualifier注解来明确指定要注入的Bean的名称或限定符。
通过在Autowired或Resource注解上使用Qualifier注解可以指定要注入的特定Bean的名称或限定符。这样能够解决当有多个相同类型的Bean存在时容器无法确定要注入哪个Bean的问题。
以下是使用Qualifier注解的示例
Component
public class MyService {AutowiredQualifier(myBean)private MyBean myBean;// ...
}在这个例子中当有多个类型为MyBean的Bean存在时通过Qualifier(“myBean”)注解指定要注入名为myBean的Bean。
需要注意的是Qualifier注解的值对应于具体Bean的名称或限定符。如果没有定义Bean的名称或限定符则可以使用默认的限定符默认情况下与Bean的类名首字母小写相同。
总结
Qualifier注解是Spring框架提供的用于解决依赖注入歧义性的注解。通过结合Autowired或Resource注解使用Qualifier注解可以明确指定要注入的特定Bean的名称或限定符。这样能够解决当有多个相同类型的Bean存在时容器无法确定要注入哪个Bean的问题。
Resource注解
什么是Resource注解
Resource是Java标准的注解也可以用于依赖注入。它可以标记在字段、构造方法、Setter方法或者普通方法上告诉容器需要自动注入相关的依赖。
Resource注解的使用方式
Resource注解可以通过name属性指定要注入的Bean名称如果没有指定name属性则会根据字段名或方法名进行自动装配。 先Name后type
Resource
private UserService userService;Resource注解的优势和不足
优势
可以指定要注入的Bean名称避免了歧义。支持注入基本类型的值。
不足
没有提供required属性无法对注入结果进行非空验证。
Autowired vs Resource
Autowired和Resource的区别
来源Autowired是Spring特有的注解而Resource是Java标准的注解。自动装配规则Autowired默认按类型进行自动装配Resource默认按名称进行自动装配。使用范围Autowired可以用于构造方法、字段、Setter方法等而Resource只能用于字段和Setter方法。注入机制Autowired不能注入基本类型的值而Resource可以。
为什么推荐使用Resource
为什么更推荐使用 Resource Resource注解在字段上这个注解是属于J2EE的减少了与spring的耦合。 但是其实啊这个问题我觉得很多人可能对它的理解有误 更推荐使用 Resource 我觉得不是因为Resource注解性能更好之类的。 而是因为其可以指定是通过 name 还是 type 的注入方式而Autowired注解本身自己是不能实现这个效果的要和Qualifier一起用才可以
选择适合场景的注解
如果只使用Spring框架建议使用Autowired注解。如果需要保持代码的独立性或者可能迁移到其他容器中建议使用Resource注解。
总结
Autowired 根据类型type注入
Qualifier(“cusInfoService”)//一般作为Autowired()的修饰用
Autowired Qualifie(“userService”) 两个结合起来可以根据名字和类型注入
Resource 默认根据名字name注入其次按照类型搜索也可以通过name和type属性进行选择性注入
一般Autowired和Qualifier一起用Resource单独用。
当然没有冲突的话Autowired也可以单独用