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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值