`

ApplicationContextAware接口用法

 
阅读更多

加载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 ;
      
    /*
     * 注入ApplicationContext
     */
    @Override
    public void setApplicationContext(ApplicationContext context)
            throws BeansException {
        //在加载Spring时自动获得context
        SpringContextHelper.context = context;
        System.out.println(SpringContextHelper.context);
    }
      
    public static Object getBean(String beanName){
        return context.getBean(beanName);
    }
}
分享到:
评论

相关推荐

    Spring Aware标记接口使用案例解析

    表示对 XXX 可以感知通俗点解释就是:如果在某个类里面想要使用 Spring 的一些东西,就可以通过实现 XXXAware 接口告诉 Spring,Spring 看到后就会送过来,而接受的方式是通过实现接口唯一的方法 setXXX。 ...

    多线程Autowire注入null的解决方案.docx

    可以创建一个帮助类,实现ApplicationContextAware接口,并在其中保存Spring ApplicationContext。然后,在需要使用service的地方,可以使用该帮助类来获取对应的bean。 在帮助类中,我们可以使用静态变量来保存...

    Spring实现Aware接口自定义获取bean的两种方式

    Spring Aware接口自定义获取bean的两种方式 Aware接口是Spring...在使用Spring编程时,需要根据bean的名称来获取相应的bean对象,这时候,可以通过实现BeanFactoryAware和ApplicationContextAware接口来满足需求。

    java 接口 代码实例

    在实际应用中,接口常用于设计模式,如策略模式、观察者模式等,以及在框架设计中,比如Spring框架中的`ApplicationContextAware`接口,它允许类感知并访问Spring的应用上下文。 总的来说,Java接口提供了定义行为...

    5. 多个service实现同一个接口 或者抽象类 1

    同时,通过`ApplicationContextAware`和`BeanPostProcessor`接口的使用,我们可以更好地控制bean的生命周期和应用上下文的访问。这种设计提高了代码的可扩展性和灵活性,使得系统能够适应不断变化的需求。

    spring-aware接口实现与bean作用域(spring多容器层面)

    `ApplicationContextAware`是其中的一个典型接口,当我们想要在非托管类(即非Spring Bean)中获取Spring容器中的其他Bean时,可以使用这个接口。 `ApplicationContextAware`接口提供了`setApplicationContext`方法...

    Spring各种回调接口[定义].pdf

    2. **ApplicationContextAware**:此接口允许Bean直接访问ApplicationContext容器。通过实现`setApplicationContext(ApplicationContext applicationContext)`方法,Bean可以获取到容器对象,从而可以访问其他Bean、...

    spring监听器共20页.pdf.zip

    1. **理解ApplicationContextAware接口**:当一个Bean实现了ApplicationContextAware接口,Spring容器会在Bean初始化后,自动将ApplicationContext对象注入到Bean中,使得Bean可以获取到上下文中的其他Bean。...

    普通对象使用spring容器中的对象的实现方法

    实现方法的主要思想是使用spring框架提供的ApplicationContextAware接口来获取spring容器中的对象。这个接口提供了获取ApplicationContext对象的方法,从而可以使用ApplicationContext对象来获取spring容器中的对象...

    Springbean循环依赖问题,与解决方案。.docx

    2. 使用 ApplicationContextAware 接口:使用 ApplicationContextAware 接口可以在 Bean 创建时获取 ApplicationContext 对象,从而解决循环依赖的问题。 3. 使用依赖注入容器:使用依赖注入容器可以自动解决循环...

    03 mybatis高级(3) 1

    它继承自AbstractSqlSessionFactoryBean,并实现了ApplicationContextAware接口,以便于从Spring容器中获取配置信息。SqlSessionFactoryBean的主要职责包括读取MyBatis的配置文件,构建SqlSessionFactory,以及处理...

    Java获取接口所有实现类的方式详解

    接下来,我们可以使用 ServiceLoader 的 `load` 方法来加载所有的接口实现类: ```java ServiceLoader&lt;MyInterface&gt; loader = ServiceLoader.load(MyInterface.class); ``` 在上面的代码中,我们使用了 ...

    17. Spring Boot普通类调用bean【从零开始学Spring Boot】

    你可以通过实现ApplicationContextAware接口,或者直接在代码中创建ApplicationContext实例来访问bean。 5. **非Spring管理类调用bean**: 在非Spring管理的类中,如果你想使用Spring容器中的bean,有以下几种方式...

    获取spring容器的方法

    本文将深入探讨几种常见的获取Spring容器的方法,包括使用`ApplicationContext`、通过`ServletContext`、利用`ApplicationObjectSupport`、`WebApplicationObjectSupport`以及实现`ApplicationContextAware`接口等。...

    Spring part 2 :Bean的生命周期

    在Spring容器中,Bean的生命周期还包括容器感知的初始化和销毁,例如ApplicationContextAware接口允许Bean获取到容器引用,而ApplicationEventPublisherAware接口使Bean能够发布和监听应用事件。 总的来说,Spring ...

    Spring实战之让Bean获取Spring容器操作示例

    ### 知识点一:ApplicationContextAware接口 在Spring中,如果一个Bean想要获取Spring容器的引用,就需要实现`ApplicationContextAware`接口。通过这种方式,Spring容器在创建该Bean的时候,会检测到它实现了`...

    springboot插件

    开发者可以通过实现ApplicationContextAware接口,获取到ApplicationContext实例,然后调用它的registerBeanDefinition方法来注册新的BeanDefinition。此外,还可以使用BeanPostProcessor接口来实现Bean实例化后的...

    SpringBoot获取ApplicationContext的3种方式

    在上面的代码中,我们实现了ApplicationContextAware接口,并Override了setApplicationContext方法,在该方法中,我们将传入的ApplicationContext对象赋值给类的成员变量。 结论:通过上面的三种方式,我们可以获取...

    Java获取Bean的几种方式.pdf

    5. **实现ApplicationContextAware接口** 实现这个接口,Spring会在初始化时自动调用`setApplicationContext(ApplicationContext context)`方法,将ApplicationContext注入到Bean中。 ```java public class ...

Global site tag (gtag.js) - Google Analytics