zoukankan      html  css  js  c++  java
  • Spring

    @Resource 和 @Autowired 都是用来装配依赖的,它们之间有些异同。

    @Resoure

    • @Resource 是 JSR-250 规范的注解。
    • @Resource 可以标注在字段、方法上,但不可以标注在构造方法上。
    • 默认情况下,@Resource 按依赖的名称进行装配。@Resource 与 <property/> 元素的 ref 属性的效果相同。
    • @Resource 的装配顺序
      1. 如果同时指定了 name 和 type 属性,则从 Spring 容器中查找唯一匹配的 Bean 进行装配,找不到则抛出异常。
      2. 如果只指定了 name 属性,则从 Spring 容器中查找名称(id)匹配的 Bean 进行装配,找不到则抛出异常。
      3. 如果只指定了 type 属性,则从 Spring 容器中查找类型匹配且唯一的 Bean 进行装配,找不到或者找到多个,都会抛出异常。
      4. 如果没有指定 name 和 type 属性,则自动按照 byName 方式进行装配。如果没有匹配,则回退为一个原始类型进行匹配;如果匹配则自动装配。

    @Autowired 

    • @Autowired 是 Spring 的注解。
    • @Autowired 可以标注在字段、方法上,也可以标注在构造方法上。
    • 默认情况下,@Autowired 按照依赖的类型进行装配。如果 Spring 容器中包含多个该类型的实例,那么容器会抛出 BeanCreationException 异常。
    • 为实现精确装配,@Autowired 可以和 @Qualifier 结合使用。@Autowired @Qualifier("xxx") 相当于 @Resource("xxx")
    • 默认情况下, @Autowired 要求依赖对象必须存在,如果要允许 null 值,可以设置它的 required 属性为 false,例如:@Autowired(required=false)
  • 相关阅读:
    结对开发第一阶段,10天冲刺第十天
    结对开发第一阶段,10天冲刺第九天
    vim 编辑器
    用户、群组和权限
    硬盘分区、格式化及文件系统管理
    系统监控
    Linux 系统初始化和服务
    文件合并与打包
    计算机原理
    Linux 之添加系统环境变量
  • 原文地址:https://www.cnblogs.com/huey/p/4508967.html
Copyright © 2011-2022 走看看