一.目前使用最广泛的 @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
} 

[心得笔记]spring常用的三种依赖注入方式的更多相关文章

  1. 深入浅出spring IOC中三种依赖注入方式

    深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和 ...

  2. 【SSH系列】深入浅出spring IOC中三种依赖注入方式

    spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ...

  3. spring IOC中三种依赖注入方式

    Spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则,用来消减计算机程序之间的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入 ...

  4. 转:深入浅出spring IOC中四种依赖注入方式

    转:https://blog.csdn.net/u010800201/article/details/72674420 深入浅出spring IOC中四种依赖注入方式 PS:前三种是我转载的,第四种是 ...

  5. Spring学习(十八)Bean 的三种依赖注入方式介绍

    依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖.接下来将详细的向大家介绍Spring容器支持的三种依赖注入的方式以及具体配置方法:•    属性注入方法• ...

  6. spring IOC中四种依赖注入方式

    在spring ioc中有三种依赖注入,分别是:https://blog.csdn.net/u010800201/article/details/72674420 a.接口注入:b.setter方法注 ...

  7. Spring IOC(三)依赖注入

    本系列目录: Spring IOC(一)概览 Spring IOC(二)容器初始化 Spring IOC(三)依赖注入 Spring IOC(四)总结 目录 1.AbstractBeanFactory ...

  8. spring四种依赖注入方式(转)

    spring四种依赖注入方式!! 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提 ...

  9. ASP.NET Core应用的7种依赖注入方式

    ASP.NET Core框架中的很多核心对象都是通过依赖注入方式提供的,如用来对应用进行初始化的Startup对象.中间件对象,以及ASP.NET Core MVC应用中的Controller对象和V ...

随机推荐

  1. STM32的时钟系统RCC详细整理(转载)

    一.综述: 1.时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI . HSE . LSI . LSE . PLL . ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz : ② ...

  2. python3 列表转换为字符串

    join将列表转换为字符串 list1 = ["张三","李四","王五"] a1 = ','.join(list1) print(a1) ...

  3. STM32SD卡 (U盘)IAP升级

    http://www.openedv.com/posts/list/65104.htm

  4. python 如何让俩个对象相等及如何让俩个对象具有相同的id值

  5. 离散傅里叶变换的衍生,负频率、fftshift、实信号、共轭对称

    封面是福州的福道,从高处往下看福道上的人在转圈圈.从傅里叶变换后的频域角度来看,我们的生活也是一直在转圈圈,转圈圈也是好事,说明生活有规律,而我们应该思考的是,如何更有效率地转圈圈--哦别误会,我真不 ...

  6. [Django高级之中间件、csrf跨站请求伪造]

    [Django高级之中间件.csrf跨站请求伪造] Django中间件 什么是中间件? Middleware is a framework of hooks into Django's request ...

  7. Git如何下载clone指定的tag

    Git如何下载clone指定的tag 如上图,我想下载Tags标签为solution-4 的代码,如何处理呢? 命令如下: git clone --branch solution-4 git@gith ...

  8. 使用ONNX将模型转移至Caffe2和移动端

    使用ONNX将模型转移至Caffe2和移动端 本文介绍如何使用 ONNX 将 PyTorch 中定义的模型转换为 ONNX 格式,然后将其加载到 Caffe2 中.一旦进入 Caffe2, 就可以运行 ...

  9. YOLO v1到YOLO v4(上)

    YOLO v1到YOLO v4(上) 一.  YOLO v1 这是继RCNN,fast-RCNN和faster-RCNN之后,rbg(RossGirshick)针对DL目标检测速度问题提出的另外一种框 ...

  10. 5, java数据结构和算法: 栈 , 入栈, 出栈, 正序遍历,,逆序遍历

    直接上代码: class ArrayStack{ //用数组模拟栈 int maxSize; int[] stack; int top = -1;//表示栈顶 public ArrayStack(in ...