Spring获取Bean的自身id
2018-03-21 21:52:18
3170 次阅读
0 个评论
在某些情况下,业务要求程序员在开发Bean类时能预先知道该Bean的配置id,此时可借助Spring提供的BeanNameAware接口,通过该接口即可提交预知Bean的配置id.BeanNameAware接口提供了一个方法:setBeanName(Sring name),该方法的name参数就是Bean的id,实现该方法的Bean类就可通过该方法来获得部署该Bean的id了。
下面写个实现的方法。
下面定义一个Bean,该Bean实现了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);
}
}
Spring容器会检测容器中的所有Bean,如果发现某个Bean实现了BeanNameAware接口,Spring容器就会在创建该Bean之后,自动调用该Bean的setBeanName()方法,调用该方法时,会将Bean的配置id作为参数传给该方法——该方法的实现部分将Spring传入的参数(Bean的配置id)赋给该Chinese对象的beanName实例变量,因此接下来即可通过该beanName实例变量来访问容器本身。 下面写个实现的方法。
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();
}
}
00
相关话题
- Spring Configuration动态绑定bean id
- spring配置文件中bean的属性name与id的区别
- Spring启动后获取所有指定注解的Bean
- 使用@Configuration注解来代替Spring的bean配置
- Spring boot打包后从类路径目录中获取资源列表
- 获取Redis里的所有健值对
- Mysql获取某个表的所有字段名
- Mybatis批量插入成功后返回主键id
- 获取SpringMVC中所有的RequestMapping映射URL地址
- SpringMVC获取Request域
- 灌几口毒鸡汤,用另类的方式获取真正的人生哲理!毒鸡汤锦集六
- Spring下载地址
- Spring常用注解
- jQuery中获取当前JS文件路径
- zTree 获取全部选中节点数据