Spring实战之Qualifier注解用法示例

网友投稿 370 2022-12-18


Spring实战之Qualifier注解用法示例

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

一 配置

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans-4.0.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context-4.0.xsd">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans-4.0.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context-4.0.xsd">

二 接口

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程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java如何获取数组和字符串的长度(length还是length())
下一篇:Java静态static关键字原理详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~