一.目前使用最广泛的 @Autowired:自动装配

基于@Autowired的自动装配,默认是根据类型注入,可以用于构造器、接口、方法注入,使用方式如下:

@Autowired
构造方法、方法、接口
@Autowired默认是根据参数类型进行自动装配,且必须有一个Bean候选者注入默认required=true,如果允许出现0个Bean候选者需要设置属性“required=false”,“required”属性含义和@Required一样,只是@Required只适用于基于XML配置的setter注入方式,只能打在setting方法上。

1)、构造器注入:通过将@Autowired注解放在构造器上来完成构造器注入,默认构造器参数通过类型自动装配,如下所示:

 public class Test1 {
private MessageInterface message;
@Autowired //构造器注入
private Test1(MessageInterface message) {
this.message = message;
}
//省略getter和setter
}
 
1
 public class Test1 {  
2
    private MessageInterface message;  
3
    @Autowired //构造器注入  
4
    private Test1(MessageInterface message) {  
5
        this.message = message;  
6
    }
7
    //省略getter和setter  
8
  }
(2)、接口注入:通过将@Autowired注解放在构造器上来完成接口注入。
 public class Test2 {
@Autowired //接口注入
private MessageInterface messageInterface;
//省略getter和setter
}
 
1
 public class Test2 {  
2
    @Autowired //接口注入  
3
    private MessageInterface messageInterface;  
4
    //省略getter和setter  
5
} 
(3)、方法参数注入:通过将@Autowired注解放在方法上来完成方法参数注入。

 
public class Test3 {
private MessageInterface message; @Autowired //setter方法注入
public void setMessage(MessageInterface message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
11
 
1
public class Test3 {  
2
    private MessageInterface message;  
3
 
4
    @Autowired //setter方法注入  
5
    public void setMessage(MessageInterface message) {  
6
        this.message = message;  
7
    }  
8
    public String getMessage() {  
9
        return message;  
10
    }  
11
}

public class Test4 {
private MessageInterface message; //
private List<String> list;
@Autowired(required = true) //任意一个或多个参数方法注入
private void initMessage(MessageInterface message, ArrayList<String> list) {
this.message = message;
this.list = list;
}
//省略getter和setter
}
10
 
1
public class Test4 {  
2
    private MessageInterface message; //
3
    private List<String> list;  
4
    @Autowired(required = true) //任意一个或多个参数方法注入  
5
    private void initMessage(MessageInterface message, ArrayList<String> list) {  
6
        this.message = message;  
7
        this.list = list;  
8
    }  
9
    //省略getter和setter  
10
} 

最新文章

  1. 从零开始山寨Caffe&#183;拾:IO系统(三)
  2. php 判断文件或目录是否存在
  3. Redis基础(转)
  4. Java虚拟机1:什么是Java
  5. 第九天 内容提供者 ContentResolver
  6. 【Linux】之系统工具top
  7. exynos 4412 电源管理芯片PMIC 的配置及使用方法
  8. PHP Redis 集群封装类
  9. WCF已超过传入消息(65536)的最大消息大小配额的解决方法
  10. wordpress整站搬家总结
  11. lesson6:java线程中断
  12. linux下java窗口,正确显示中文
  13. PHP支付第3方接口使用方法。
  14. less,more,view一个文件时中文可以正常显示,可是VI却显示乱码呢?
  15. python学习笔记(四)、条件、循环及其他语句
  16. Mad Lids游戏 华氏与摄氏温度转换
  17. 学习mysql replication gitd
  18. Codeforces 682C Alyona and the Tree (树上DFS+DP)
  19. 第七章 JVM性能监控与故障处理工具(1)
  20. ajax防止表单自动提交

热门文章

  1. C语言中位运算异或“∧”的作用
  2. s40 KVM虚拟化企业级实战
  3. Python数学建模-01.新手必读
  4. sql server 操作(不定期更新)
  5. 混合前端seq2seq模型部署
  6. CUDA Pro:通过向量化内存访问提高性能
  7. BEP 7:CUDA外部内存管理插件(上)
  8. 如何在小型pcb的移动设备上获得更好的无线性能
  9. 反汇编EXE添加一个启动时的消息框
  10. thymeleaf模板引擎基础知识