• @Autowired 注释对在哪里和如何完成自动连接提供了更多的细微的控制。


    1、@Autowired 可以用在多个地方,在 setter 方法上,属性上 或者 带有多个参数的任意方法上。

    Setter 方法中的 @Autowired.

    当 Spring遇到一个在 setter 方法中使用的 @Autowired 注释,它会在方法中视图执行 byType 自动连接。

    java

    public class TextEditor {
       private SpellChecker spellChecker;
       @Autowired
       public void setSpellChecker( SpellChecker spellChecker ){
          this.spellChecker = spellChecker;
       }
    }

    Bean.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans>
       <context:annotation-config/>
       <bean id="textEditor" class="com.tutorialspoint.TextEditor"></bean>
       <bean id="spellChecker" class="com.tutorialspoint.SpellChecker"></bean>
    </beans>

    属性中的 @Autowired

    在属性中使用 @Autowired 注释来除去 setter 方法。Spring 会将这些传递过来的值或者引用自动分配给那些属性。

    java

    public class TextEditor {
       @Autowired
       private SpellChecker spellChecker;
    }

    Bean.xml同上。

    构造函数中的 @Autowired

    构造函数使用 @Autowired 说明当创建 bean 时,可以消除在 XML 文件中的构造函数配置。

    java

    public class TextEditor {
       private SpellChecker spellChecker;
       @Autowired
       public TextEditor(SpellChecker spellChecker){
          this.spellChecker = spellChecker;
       }
    }

    Bean.xml同上。

    @Autowired 的(required=false)选项

    默认情况下,@Autowired 注释意味着依赖是必须的,它类似于 @Required 注释,然而,你可以使用 @Autowired 的(required=false) 选项关闭默认行为。

    即使你不为 age 属性传递任何参数,下面的示例也会成功运行,但是对于 name 属性则需要一个参数。

    java

    public class Student {
       private Integer age;
       private String name;
       @Autowired(required=false)
       public void setAge(Integer age) {
          this.age = age;
       }  
       public Integer getAge() {
          return age;
       }
       @Autowired
       public void setName(String name) {
          this.name = name;
       }   
       public String getName() {
          return name;
       }
    }
  • 相关阅读:
    Ubuntu 安装Nginx的APT源
    Slots的数值设计与人为干涉
    棋牌游戏的经济系统分析
    kubernetes学习笔记之阿里云游戏业务实战
    Certbot-免费的https证书
    let’s Encrypt 证书之安装故障 Could not bind to IPv4 or IPv6.
    ssh:Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open
    详解nginx websocket配置
    nginx upstream的五种分配方式
    nrm安装与配置
  • 原文地址:https://www.cnblogs.com/wangdapeng/p/5053564.html
Copyright © 2020-2023  润新知