Spring实战之Qualifier注解用法示例

 更新时间:2019年12月27日 09:37:47   作者:cakincqm  
这篇文章主要介绍了Spring实战之Qualifier注解用法,结合实例形式详细分析了spring Qualifier注解相关配置、定义与使用方法,需要的朋友可以参考下

本文实例讲述了Spring实战之Qualifier注解用法。分享给大家供大家参考,具体如下:

一 配置

<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-4.0.xsd">
   <context:component-scan base-package="org.crazyit.app.service"/>  
</beans>

二 接口

Axe

package org.crazyit.app.service;
public interface Axe
{
   public String chop();
}

Person

package org.crazyit.app.service;
public interface Person
{
   public void useAxe();
}

三 Bean

Chinese

package org.crazyit.app.service.impl;
import org.springframework.stereotype.*;
import org.springframework.beans.factory.annotation.*;
import org.crazyit.app.service.*;
@Component
public class Chinese implements Person
{
  @Autowired
  @Qualifier("steelAxe")
  private Axe axe;
//  // axe的setter方法
//  @Autowired
//  public void setAxe(@Qualifier("stoneAxe") Axe axe)
//  {
//    this.axe = axe;
//  }
  // 实现Person接口的useAxe()方法
  public void useAxe()
  {
    // 调用axe的chop()方法,
    // 表明Person对象依赖于axe对象
    System.out.println(axe.chop());
  }
}

SteelAxe

package org.crazyit.app.service.impl;
import org.springframework.stereotype.*;
import org.crazyit.app.service.*;
@Component
public class SteelAxe implements Axe
{
  public String chop()
  {
    return "钢斧砍柴真快";
  }
}

StoneAxe

package org.crazyit.app.service.impl;
import org.springframework.stereotype.*;
import org.crazyit.app.service.*;
@Component
public class StoneAxe implements Axe
{
  public String chop()
  {
    return "石斧砍柴好慢";
  }
}

四 测试类

package lee;
import org.springframework.context.*;
import org.springframework.context.support.*;
import org.crazyit.app.service.*;
public class BeanTest
{
  public static void main(String[] args)
  {
    // 创建Spring容器
    AbstractApplicationContext ctx = new
      ClassPathXmlApplicationContext("beans.xml");
    // 注册关闭钩子
    ctx.registerShutdownHook();
    Person person = ctx.getBean("chinese" , Person.class);
    person.useAxe();
  }
}

五 测试结果

钢斧砍柴真快

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • MyBatis中的mapper.xml配置教程

    MyBatis中的mapper.xml配置教程

    这篇文章主要介绍了MyBatis中的mapper.xml配置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 谈谈Java中的守护线程与普通线程

    谈谈Java中的守护线程与普通线程

    这篇文章主要介绍了Java中的守护线程与普通线程,帮助大家更好的理解和学习Java 多线程,感兴趣的朋友可以了解下
    2020-09-09
  • 简单谈谈SpringMVC转发和重定向的区别

    简单谈谈SpringMVC转发和重定向的区别

    下面小编就为大家带来一篇简单谈谈SpringMVC转发和重定向的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • java垃圾回收原理之GC算法基础

    java垃圾回收原理之GC算法基础

    本章简要介绍GC的基本原理和相关技术, 下一章节再详细讲解GC算法的具体实现。各种垃圾收集器的实现细节虽然并不相同,但总体而言,垃圾收集器都专注于两件事情:查找所有存活对象,抛弃其他的部分,即死对象,不再使用的对象
    2022-01-01
  • RabbitMQ死信机制实现延迟队列的实战

    RabbitMQ死信机制实现延迟队列的实战

    本文主要介绍了RabbitMQ死信机制实现延迟队列的实战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java 中的CharArrayReader 介绍_动力节点Java学院整理

    Java 中的CharArrayReader 介绍_动力节点Java学院整理

    CharArrayReader 是字符数组输入流。它和ByteArrayInputStream类似,只不过ByteArrayInputStream是字节数组输入流,而CharArray是字符数组输入流。CharArrayReader 是用于读取字符数组,它继承于Reader
    2017-05-05
  • Java自带的加密类MessageDigest类代码示例

    Java自带的加密类MessageDigest类代码示例

    这篇文章主要介绍了Java自带的加密类MessageDigest类代码示例,分享了常见的三种加密方式代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • java实现投票程序设计

    java实现投票程序设计

    这篇文章主要介绍了java实现投票程序设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 配置java环境变量(linux mac windows7)

    配置java环境变量(linux mac windows7)

    本文给大家详细总结介绍了Linux、MAC以及Windows下配置java环境变量的方法,非常的细致全面,有需要的小伙伴可以参考下
    2015-11-11
  • Java数据结构之线索化二叉树的实现

    Java数据结构之线索化二叉树的实现

    在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。本文将详解如何实现线索化二叉树,需要的可以参考一下
    2022-05-05

最新评论