当前位置: 首页 > wzjs >正文

珠海正规网站制作系统最近的热点新闻

珠海正规网站制作系统,最近的热点新闻,苏州做网站外包的公司,网页制作基础教程第二版答案前言 Autowired 和 Resource 是 Spring 中用于依赖注入的注解,但两者在实现机制和使用方式上有显著差异。 主要区别 1.来源不同 Autowired:由 Spring 框架提供(org.springframework.beans.factory.annotation),与 S…

前言

  • @Autowired 和 Resource 是 Spring 中用于依赖注入的注解,但两者在实现机制和使用方式上有显著差异。

主要区别

1.来源不同

  • @Autowired:由 Spring 框架提供(org.springframework.beans.factory.annotation),与 Spring 强耦合。
  • @Resource:由 JSR-250 规范定义(javax.annotation.Resource),属于 Java 标准,通用性更强。

2.注入方式

默认行为:

  • @Autowired
    • 默认按 类型(byType) 注入。若存在多个同类型 Bean,则按 名称(byName) 匹配。
    • 需配合 @Qualifier 指定名称。
@Autowired
@Qualifier("userServiceA") // 指定 Bean 名称
private UserService userService;
  • @Resource
    • 默认按 名称(byName) 注入 。若未指定名称,则按 类型(byType) 回退。
    • 可通过 name 或 type 属性精确控制。
@Resource(name = "userServiceA") // 显式指定名称
private UserService userService;

3.参数支持

  • @Autowired 仅支持 required 参数,控制是否必须注入(默认为 true):
@Autowired   //@Autowired( required = "true")
@Qualifier("userServiceA") // 指定 Bean 名称
private UserService userService;
  • @Resource 支持 name、type、lookup 等参数,灵活性更高:
@Resource(name = "userServiceA") // 显式指定名称
private UserService userService;

4.注入位置

  • @Autowired:支持更广泛的注入位置
    • 字段
    • 构造器
    • Setter 方法
    • 普通方法
@Autowired
public void setupService(UserService userService) {this.userService = userService;
}
  • @Resource:主要用于字段和 Setter 方法
@Resource
public void setUserService(UserService userService) {this.userService = userService;
}

5.异常处理

  • 无匹配 Bean
    • @Autowired
      (1)若 required = true(默认)且无匹配 Bean,抛出 NoSuchBeanDefinitionException。
      (2)若 required = false,允许注入 null。
    • @Resource
      (1)若未找到指定名称或类型的 Bean,直接抛出 NoSuchBeanDefinitionException。
  • 多匹配 Bean
    • @Autowired
      (1)若存在多个同类型 Bean,需通过 @Qualifier 指定名称,否则抛出 NoUniqueBeanDefinitionException。
    • @Resource
      (2)若未指定 name 且存在多个同类型 Bean,按名称匹配失败后抛出 NoUniqueBeanDefinitionException。

6.代码示例【多个同类型bean】

  • 向IOC容器中通过@Service注解注入两个同类型的bean【均为UserService接口的实现类】
// 定义接口及实现类
public interface UserService { /* ... */ }@Service("userServiceA")
public class UserServiceA implements UserService { /* ... */ }@Service("userServiceB")
public class UserServiceB implements UserService { /* ... */ }
  • @Autowired 解决方案
@Autowired
@Qualifier("userServiceA")
private UserService userService;
  • @Resource 解决方案
@Resource(name = "userServiceA")
private UserService userService;

总结

在这里插入图片描述


使用建议

  • 优先使用 @Autowired:在纯 Spring 项目中,结合 @Qualifier 可满足大多数需求。
  • 选择 @Resource:需要跨框架兼容,或需通过名称精确控制注入时。
http://www.dtcms.com/wzjs/299524.html

相关文章:

  • 新乡哪里做网站今日头条号官网
  • 技术支持 英铭网站建设宣传广告怎么做吸引人
  • 网站运营优化建议苏州百度推广开户
  • 莱芜专业做网站的关键词优化排名软件案例
  • 制作网站的步骤重庆网站建设软件
  • 网站建设方案书怎么写样版网站推广seo方法
  • php 企业网站cms长沙seo工作室
  • 做搜狗手机网站长尾国内优秀个人网站欣赏
  • 分销商城app开发seo推广有哪些方式
  • 免费的黄冈 投放平台有哪些宁波做seo推广企业
  • 网站建设推广哪家靠谱网站网络营销推广
  • 北京网站建设开发公司免费推广渠道有哪些
  • 南宁网站建设哪里有每日军事新闻
  • 北京住房与城乡建设部网站app广告推广
  • 网站怎么自己做推广国内手机搜索引擎十大排行
  • 成都学生做网站百度pc端首页
  • 学做电商的网站有哪些天堂网
  • 哈尔滨专业网站制作设计快速排名服务平台
  • 深圳国贸网站建设win7系统优化大师
  • 遵义市做网站的地方推广学院seo教程
  • 下载做ppt的动画片的好网站有源码怎么搭建网站
  • 武汉江夏区建设局网站宁波网站关键词优化公司
  • 网站2级页面怎么做seo排名优化哪家好
  • 广州网站建设-信科分公司企业网络营销推广案例
  • 六安网站建设优化域名流量查询工具
  • 网站开发项目有哪些怎么样做网站推广
  • 网站超链接怎么做百度知道电脑版网页入口
  • 成都快速做网站百度搜索引擎网址格式
  • 腾讯服务器做网站英文seo外链发布工具
  • 网站平台建设调研报告公司网站建设要多少钱