zoukankan      html  css  js  c++  java
  • @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;
       }
    }
  • 相关阅读:
    3.2 Program Encodings 程序编码
    Describe your home
    Building vs solution in command line
    找到适合自己的人生轨迹 Angkor:
    每个月总有那么几天不想学习,不想写代码 Angkor:
    Linux下的Memcache安装
    敏捷开发之 12条敏捷原则
    为什么要用NIO
    memcached server LRU 深入分析
    Linux 脚本编写基础
  • 原文地址:https://www.cnblogs.com/wangdapeng/p/5053564.html
Copyright © 2011-2022 走看看