Spring实战之获得Bean本身的id操作示例

本文实例讲述了Spring实战之获得Bean本身的id操作。分享给大家供大家参考,具体如下:

一 配置

<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.springframework.org/schema/beans"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
   <!-- Spring容器会检测容器中所有Bean,如果发现某个Bean实现了BeanNameAware接口,
   Spring容器会在创建该Bean之后,自动调用该Bean的setBeanName()方法,
   调用该方法时,会将该Bean的配置id作为参数传给该方法
   该方法的实现部分将Spring传入的参数(Bean的配置id)赋为给该Chinese对象的
   beanName实例变量,因此接下来即可通过该beanName实例变量来访问Bean的配置id。-->
   <bean id="chinese" class="org.crazyit.app.service.Chinese"/>
</beans>

二 Bean

package org.crazyit.app.service;
import org.springframework.beans.factory.BeanNameAware;
public class Chinese implements BeanNameAware
{
   // 保存部署该Bean时指定的id属性
   private String beanName;
   public void setBeanName(String name)
   {
      this.beanName = name;
   }
   public void info()
   {
      System.out.println("Chinese实现类"
        + ", 部署该Bean时指定的id为" + beanName);
   }
}

三 测试类

package lee;
import org.springframework.context.*;
import org.springframework.context.support.*;
import org.crazyit.app.service.*;
public class SpringTest
{
  public static void main(String[] args)
  {
    // 创建Spring容器,容器会自动预初始化所有Bean实例
    ApplicationContext ctx =
      new ClassPathXmlApplicationContext("beans.xml");
    Chinese chin = ctx.getBean("chinese" , Chinese.class);
    chin.info();
  }
}

四 测试结果

Chinese实现类, 部署该Bean时指定的id为chinese

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

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。