Spring入门2--aware接口

本文介绍如何通过实现 ApplicationContextAware 接口来获取 Spring 应用上下文资源,并提供了一个具体的示例代码,展示了如何在 Bean 中注入 ApplicationContext。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看这篇之前,需要知道如何使用junit测试spring  http://blog.youkuaiyun.com/ch717828/article/details/44805541

通过aware接口,可以对spring相应资源(可能包含相关核心资源)进行操作(一定要慎重)

首先创建一个类,实现ApplicationContextAware接口 ,  该借口需要实现 setApplicationContext方法,该方法的参数由容器传递进来。

这样,bean 就获得了ApplicationContext这个资源

package aware;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;


public class GetApplicationContext implements ApplicationContextAware {

	@Override
	public void setApplicationContext(ApplicationContext arg0)
			throws BeansException {
		// TODO Auto-generated method stub
		
		System.out.println(" GetApplicationContext:"+arg0.getBean("getApplicationContext"));
		
	}

}

spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd" >
        
      <bean id="getApplicationContext" class="aware.GetApplicationContext" ></bean>

	
        
 </beans>

创建一个测试类进行测试

package test.aware;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.springframework.context.support.ClassPathXmlApplicationContext;

@RunWith(BlockJUnit4ClassRunner.class)
public class TestAware {

	
	private ClassPathXmlApplicationContext context;
	
	@Test
	public void test()
	{
		context = new ClassPathXmlApplicationContext("spring-aware.xml");
		context.getBean("getApplicationContext");
	}
}

输出结果:

 GetApplicationContext:aware.GetApplicationContext@14bc1199


完整项目:http://download.youkuaiyun.com/detail/ch717828/8560541


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值