小猴子先生

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  23 随笔 :: 0 文章 :: 1 评论 :: 15万 阅读

一、前言

  spring4.0+版本开发中使用到了自动装配技术,故有了这篇总结博文,后面对接口、实现类、装配注入,做详细解释。

 

二、@Resource、@Autowired、@Qualifier 定义说明:

  1、@Resource 默认根据名字注入,其次按照类型搜索

  2、@Autowired 根据类型注入

  3、@Autowired @Qualifie("userService") 两个结合起来可以根据名字和类型注入

 

三、程序示例

1、定义接口 GameService

package com.tlong.service;

/**
 * 游戏接口
 */
public interface GameService {
    public void play();
}

2、定义两个实现类 GloryOfKingsImpl 、PubgImpl 

复制代码
package com.tlong.service;

import org.springframework.stereotype.Service;

/**
 * 王者荣耀
 */
@Component
public class GloryOfKingsImpl implements GameService {

    @Override
    public void play() {
        System.out.println("王者荣耀 游戏开始......");
    }
}
复制代码
复制代码
package com.tlong.service;

import org.springframework.stereotype.Service;

/**
 * 绝地求生
 */
@Component
public class PubgImpl implements GameService {
    @Override
    public void play() {
        System.out.println("绝地求生 游戏开始......");
    }
}
复制代码

3、定义测试类 TestController

复制代码
public class TestController {

    //简洁写法:保证变量名是实现类的名称,注意:首字符小写
    @Autowired
    private GameService gloryOfKingsImpl;

    //简洁写法:保证变量名是实现类的名称,注意:首字符小写,此处@Resource和@Autowired实现方式相同
    @Resource
    private GameService pubgImpl;



    //如果想指定不一样的变量名要怎么写呢?不能使用上面的自动装配技术也可以理解,在实现类中使用了@Component注解,spring会自为其创建一个bean并给定ID为gloryOfKingsImpl,spring并不知道该变量需要装配哪个实现类
    //写法如下
    //1、使用@Autowired和@Qualifier实现,注意:@Qualifier中的首字符小写
    @Autowired
    @Qualifier("gloryOfKingsImpl")
    private GameService wzry;

    //2、使用@Resource实现,注意:@Resource中的首字符小写
    @Resource(name = "pubgImpl")
    private GameService jdqs;

    public void playGame(){
        gloryOfKingsImpl.play();
        pubgImpl.play();
        wzry.play();
        jdqs.play();
    }
}
复制代码

 

posted on   小猴子先生  阅读(462)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示