加载Spring配置文件时,如果Spring配置文件中所定义的Bean类,如果该类实现了ApplicationContextAware接口,那么在加载Spring配置文件时,会自动调用ApplicationContextAware接口中的
public void setApplicationContext(ApplicationContext context) throws BeansException
方法,并且自动可获得ApplicationContext 对象。前提必须在Spring配置文件中指定改类。
一个Demo程序如下:
Spring配置文件中配置:
1
|
< bean id = "springContext" class = "com.shine.spring.SpringContextHelper" ></ bean >
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/**
* ApplicationContext的帮助类
* 自动装载ApplicationContext
*
* @author ChenST
* @create 2010-6-24
*
*/
public class SpringContextHelper implements ApplicationContextAware {
private static ApplicationContext context ;
@Override
public void setApplicationContext(ApplicationContext context)
throws BeansException {
SpringContextHelper.context = context;
System.out.println(SpringContextHelper.context);
}
public static Object getBean(String beanName){
return context.getBean(beanName);
}
}
|
分享到:
相关推荐
表示对 XXX 可以感知通俗点解释就是:如果在某个类里面想要使用 Spring 的一些东西,就可以通过实现 XXXAware 接口告诉 Spring,Spring 看到后就会送过来,而接受的方式是通过实现接口唯一的方法 setXXX。 ...
可以创建一个帮助类,实现ApplicationContextAware接口,并在其中保存Spring ApplicationContext。然后,在需要使用service的地方,可以使用该帮助类来获取对应的bean。 在帮助类中,我们可以使用静态变量来保存...
Spring Aware接口自定义获取bean的两种方式 Aware接口是Spring...在使用Spring编程时,需要根据bean的名称来获取相应的bean对象,这时候,可以通过实现BeanFactoryAware和ApplicationContextAware接口来满足需求。
在实际应用中,接口常用于设计模式,如策略模式、观察者模式等,以及在框架设计中,比如Spring框架中的`ApplicationContextAware`接口,它允许类感知并访问Spring的应用上下文。 总的来说,Java接口提供了定义行为...
同时,通过`ApplicationContextAware`和`BeanPostProcessor`接口的使用,我们可以更好地控制bean的生命周期和应用上下文的访问。这种设计提高了代码的可扩展性和灵活性,使得系统能够适应不断变化的需求。
`ApplicationContextAware`是其中的一个典型接口,当我们想要在非托管类(即非Spring Bean)中获取Spring容器中的其他Bean时,可以使用这个接口。 `ApplicationContextAware`接口提供了`setApplicationContext`方法...
2. **ApplicationContextAware**:此接口允许Bean直接访问ApplicationContext容器。通过实现`setApplicationContext(ApplicationContext applicationContext)`方法,Bean可以获取到容器对象,从而可以访问其他Bean、...
1. **理解ApplicationContextAware接口**:当一个Bean实现了ApplicationContextAware接口,Spring容器会在Bean初始化后,自动将ApplicationContext对象注入到Bean中,使得Bean可以获取到上下文中的其他Bean。...
实现方法的主要思想是使用spring框架提供的ApplicationContextAware接口来获取spring容器中的对象。这个接口提供了获取ApplicationContext对象的方法,从而可以使用ApplicationContext对象来获取spring容器中的对象...
2. 使用 ApplicationContextAware 接口:使用 ApplicationContextAware 接口可以在 Bean 创建时获取 ApplicationContext 对象,从而解决循环依赖的问题。 3. 使用依赖注入容器:使用依赖注入容器可以自动解决循环...
它继承自AbstractSqlSessionFactoryBean,并实现了ApplicationContextAware接口,以便于从Spring容器中获取配置信息。SqlSessionFactoryBean的主要职责包括读取MyBatis的配置文件,构建SqlSessionFactory,以及处理...
接下来,我们可以使用 ServiceLoader 的 `load` 方法来加载所有的接口实现类: ```java ServiceLoader<MyInterface> loader = ServiceLoader.load(MyInterface.class); ``` 在上面的代码中,我们使用了 ...
你可以通过实现ApplicationContextAware接口,或者直接在代码中创建ApplicationContext实例来访问bean。 5. **非Spring管理类调用bean**: 在非Spring管理的类中,如果你想使用Spring容器中的bean,有以下几种方式...
本文将深入探讨几种常见的获取Spring容器的方法,包括使用`ApplicationContext`、通过`ServletContext`、利用`ApplicationObjectSupport`、`WebApplicationObjectSupport`以及实现`ApplicationContextAware`接口等。...
在Spring容器中,Bean的生命周期还包括容器感知的初始化和销毁,例如ApplicationContextAware接口允许Bean获取到容器引用,而ApplicationEventPublisherAware接口使Bean能够发布和监听应用事件。 总的来说,Spring ...
### 知识点一:ApplicationContextAware接口 在Spring中,如果一个Bean想要获取Spring容器的引用,就需要实现`ApplicationContextAware`接口。通过这种方式,Spring容器在创建该Bean的时候,会检测到它实现了`...
开发者可以通过实现ApplicationContextAware接口,获取到ApplicationContext实例,然后调用它的registerBeanDefinition方法来注册新的BeanDefinition。此外,还可以使用BeanPostProcessor接口来实现Bean实例化后的...
在上面的代码中,我们实现了ApplicationContextAware接口,并Override了setApplicationContext方法,在该方法中,我们将传入的ApplicationContext对象赋值给类的成员变量。 结论:通过上面的三种方式,我们可以获取...
5. **实现ApplicationContextAware接口** 实现这个接口,Spring会在初始化时自动调用`setApplicationContext(ApplicationContext context)`方法,将ApplicationContext注入到Bean中。 ```java public class ...