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

(0)

相关推荐

  • Spring如何使用注解的方式创建bean

    这篇文章主要介绍了Spring如何使用注解的方式创建bean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一种使用配置类的方式 1.创建一个bean package com.springbean; public class Person { private String name; private Integer age ; public Person(String name, Integer age) { this.name = name

  • Spring实战之注入嵌套Bean操作示例

    本文实例讲述了Spring实战之注入嵌套Bean操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:sch

  • Spring的自动装配Bean的三种方式

    spring的自动装配功能的定义:无须在Spring配置文件中描述javaBean之间的依赖关系(如配置<property>.<constructor-arg>).IOC容器会自动建立javabean之间的关联关系. 如果没有采用自动装配的话,手动装配我们通常在配置文件中进行实现:一下代码就是手动装配: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht

  • Spring实战之容器中的工程Bean用法示例

    本文实例讲述了Spring容器中的工程Bean用法.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:sche

  • Spring实战之调用实例工厂方法创建Bean操作示例

    本文实例讲述了Spring实战之调用实例工厂方法创建Bean操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" x

  • 使用监听器对Spring bean id进行唯一校验过程解析

    背景 项目中用到了多数据源,不同的数据源根据业务不同配置在不同的工程中,由maven来统一聚合.但是前几天在开发过程中突然发现项目前台工程的事务配置不起作用了,在之前明明测试过事务功能,当时是生效的. 然后检查了一下配置文件中事务部分的配置,发现没什么改动.为了排除其它因素的干扰,采用了单元测试重新测试了一次,结果发现当前数据源事务正常.根据这个分析可能是当前的事务配置被其它配置干扰了,仔细检查了一下后发现罪魁祸首是另外的一个数据源事务配置(在另外的一个配置文件中)的bean id名称和当前的事

  • Spring实战之使用静态工厂方法创建Bean操作示例

    本文实例讲述了Spring实战之使用静态工厂方法创建Bean操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" x

  • Spring实战之抽象Bean和子Bean定义与用法示例

    本文实例讲述了Spring实战之抽象Bean和子Bean定义与用法.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"

  • spring中bean id相同引发故障的分析与解决

    前言 最近因为同事bean配置的问题导致生产环境往错误的redis实例写入大量的数据,差点搞挂redis.经过快速的问题定位,发现是同事新增一个redis配置文件,并且配置的RedisSentinelConfiguration的id是一样的,然后在使用@Autowired注入bean的时候因为spring bean覆盖的机制导致读取的redis配置不是原来的. 总结起来,有两点问题: 为什么相同bean id的bean会被覆盖 @Autowired注解不是按照byType的方式进行注入的吗 代码

  • Java类获取Spring中bean的5种方式

    获取Spring中的bean有很多种方式,再次总结一下: 第一种:在初始化时保存ApplicationContext对象 ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring. 第二种:通过Spring提供

随机推荐