利用Spring怎么多去Bean本身的id
更新:HHH   时间:2023-1-8


这篇文章给大家介绍利用Spring怎么多去Bean本身的id,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一 配置

<?xml version="1.0" encoding="GBK"?>

   <!-- 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

关于利用Spring怎么多去Bean本身的id就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

返回编程语言教程...