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)
  • 相关阅读:
    result set sql server
    [转载]:C#、.Net面试题目及答案
    [转载]:合并两个已排序好的int数组,并排序返回c#实现
    [转载]实际举例C#引用类型和值类型的区别
    mysql 性能优化方案
    oracle 并行原理深入解析及案例精粹
    创建Oracle外部表 External Table
    Oracle 分区表
    MySQL索引类型一览
    MySQL配置文件mysql.ini参数详解、MySQL性能优化
  • 原文地址:https://www.cnblogs.com/huey/p/4508967.html
Copyright © 2011-2022 走看看