Spring中的ApplicationContextAware接口的使用

Spring中的ApplicationContextAware接口的使用 这个接口的作用
当一个类实现ApplicationContextAware接口后,当这个类被spring加载后,就能够在这个类中获取到spring的上下文操作符ApplicationContext,通过ApplicationContext 就能够轻松的获取所有的spring管理的bean。
使用详解
【Spring中的ApplicationContextAware接口的使用】通过实现ApplicationContextAware接口中的setApplicationContext方法,我们可以获取到spring操作上线文applicationContext变量,然后把它复制给MyApplicationContext的静态变量applicationContext,这样我们就可以通过MyApplicationContext.applicationContext.getBean()的方式后去到spring管理的bean。
创建MyApplicationContext类MyApplicationContext.java

@Component public class MyApplicationContext implements ApplicationContextAware {public static ApplicationContext applicationContext; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { MyApplicationContext.applicationContext = applicationContext; }public static Object getBean(String name) { return applicationContext.getBean(name); } }

然后创建一个测试类MyApp.java
public class MyApp { public void sayHello() { System.out.println("hello world"); } }

创建TestCase测试类MyAppTest.java
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring-context.xml") public class MyAppTest {@Test public void sayHelloTest() { MyApp myApp = (MyApp) MyApplicationContext.getBean("myApp"); myApp.sayHello(); ; } }

执行case,输出
hello world

    推荐阅读