专栏首页若是烟花Spring 当一个接口多个实现时,怎么注入

Spring 当一个接口多个实现时,怎么注入

代码如下

  • Data.java
package cn.lpe234.demo;

/**
 * Created by lpe234 on 2017/9/26.
 */
public interface Data {
    void out();
}
  • AData.java
package cn.lpe234.demo;

import org.springframework.stereotype.Component;

/**
 * Created by lpe234 on 2017/9/26.
 */
@Service
public class AData implements Data {
    @Override
    public void out() {
        System.out.println("AData");
    }
}
  • BData.java
package cn.lpe234.demo;

import org.springframework.stereotype.Component;

/**
 * Created by lpe234 on 2017/9/26.
 */
@Service
public class BData implements Data {
    @Override
    public void out() {
        System.out.println("BData");
    }
}

进行试验

最简单的--使用 new 创建对象

需要什么类就去new什么类。

@Test
public void testData() {
    Data data1 = new Data() {
        @Override
        public void out() {
            System.out.println("new Data {}");
        }
    };
    Data data2 = new AData();
    Data data3 = new BData();

    data1.out();
    data2.out();
    data3.out();
}

输出

// 
new Data {}
AData
BData

Spring 自动注入

两种方式 @Autowired@Resource.

  • @Autowired 按类型进行注入
  • @Resource按名称进行注入
// 均使用 AData 的实现

@Autowired
@Qualifier("AData")
Data data;

@Resource(name = "AData")
Data getData;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java学习--反射详解

    但是注意一下,当我们把Person中的默认的无参构造函数取消的时候,比如自己定义只定义一个有参数的构造函数之后,会出现错误:

    lpe234
  • Maven Jar包制作与上传及基本使用

    本文主要为以后Dubbo分布式系统搭建做准备 之前早的时候,仅使用Nexus OSS搭建Maven私服,并上传Maven仓库中没有的第三方Jar包,也上传过自...

    lpe234
  • 自动返回笑话接口调用之微信公众平台(二)

    在InputStreamReader(InputStream in, Charset cs) 中,将编码设置为“UTF-8”即可

    lpe234
  • 多态

    HaC
  • C# 委托进阶

    本文参考自:https://wenku.baidu.com/view/41ab91d3c1c708a1284a44d7.html?qq-pf-to=pcqq.c...

    郑小超.
  • jQuery 操作 JSON 对象 修改 ztree 结构

    ztree 引用了系统中 部门试图的数据集结果,存储为一个 json 对象。其中,通过每个数据的 ParentId 来对应关联树状结构。

    李郑
  • AI和物联网技术可以帮助解决心理健康问题的4种方法

    物联网技术可以为专业人士提供补充,帮助他们为患有精神疾病的患者改善健康状况。聊天机器人可能是使用户意识到是时候寻求其他帮助的第一件事。

    用户4122690
  • 【第二期】一次学透java.io

    java.io是新手学习Java的第一个难点。因为这个package中的东西比较多,也比较复杂,另外加上一些接口太过于面向对象了,更加增大了学习的难度。这一期,...

    海纳
  • Java基础(四)线程快速了解

    其实可以理解是java的压缩包 方便使用,只要在classpath设置jar路径即可 数据库驱动,ssh框架等都是以jar包体现的

    coders
  • HDOJ 1391 Number Steps(打表DP)

    Problem Description Starting from point (0,0) on a plane, we have written all ...

    谙忆

扫码关注云+社区

领取腾讯云代金券