前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring 当一个接口多个实现时,怎么注入

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

作者头像
lpe234
发布2020-07-27 17:20:35
4060
发布2020-07-27 17:20:35
举报
文章被收录于专栏:若是烟花若是烟花

代码如下

  • Data.java
代码语言:javascript
复制
package cn.lpe234.demo;

/**
 * Created by lpe234 on 2017/9/26.
 */
public interface Data {
    void out();
}
  • AData.java
代码语言:javascript
复制
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
代码语言:javascript
复制
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什么类。

代码语言:javascript
复制
@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();
}

输出

代码语言:javascript
复制
// 
new Data {}
AData
BData

Spring 自动注入

两种方式 @Autowired@Resource.

  • @Autowired 按类型进行注入
  • @Resource按名称进行注入
代码语言:javascript
复制
// 均使用 AData 的实现

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

@Resource(name = "AData")
Data getData;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 进行试验
    • 最简单的--使用 new 创建对象
      • Spring 自动注入
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档