`

利用ApplicationContextAware实现类获取Spring ApplicationContext

阅读更多
当一个类实现了ApplicationContextAware接口之后,通过此类可以直接获取spring配置文件中所有由Spring容器管理的bean对象。

有些人实现了这个接口,但发现ApplicationContext为null,这是因为实现了该接口的这个类本身也需要在Spring容器中时行配置,否则Spring是不会将ApplicationContext实例放到其中的。

@Component("springApplicationContext")
public class ApplicationContextHelper implements ApplicationContextAware {
	private static ApplicationContext appCtx;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext )
			throws BeansException {
		appCtx = applicationContext ;
	}

	public static Object getBean(String beanName) {
		return appCtx.getBean(beanName);
	}
}
分享到:
评论

相关推荐

    获取spring容器的方法

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

    Spring获取webapplicationcontext,applicationcontext几种方法详解

    这种方式适合于采用 Spring 框架的 B/S 系统,通过 ServletContext 对象获取 ApplicationContext 对象,然后在通过它获取需要的类实例。需要注意的是,两者的区别是,前者在获取失败时抛出异常,后者返回 null。 在...

    线程中获取spring 注解bean

    4. **ApplicationContextAware**:让线程处理类实现`ApplicationContextAware`接口,Spring会在启动时自动为其注入`ApplicationContext`。然后,可以通过`ApplicationContext`的`getBean()`方法来获取所需的bean。...

    SpringBoot获取ApplicationContext的3种方式

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

    Web项目中获取SpringBean与在非Spring组件中获取SpringBean.pdf

    总的来说,获取非Spring管理组件中的SpringBean主要有两种方式:一是通过实现`ApplicationContextAware`接口并存储ApplicationContext,二是使用注解和静态内部类来注入BeanFactory。这两种方法都是Spring框架提供的...

    获取Spring容器

    该类实现了`ApplicationContextAware`接口,以便Spring容器能够在运行时自动注入`ApplicationContext`。 ```java public class ApplicationContextUtil implements ApplicationContextAware { private static ...

    spring中通过ApplicationContext getBean获取注入对象的方法实例

    当Spring容器创建了一个实现了`ApplicationContextAware`的Bean时,会自动调用其`setApplicationContext`方法,传入当前的`ApplicationContext`实例。这样,我们就可以在程序中静态持有这个`ApplicationContext`,...

    Spring中ApplicationContext对事件传递

    事件发布者可以是任何实现了`ApplicationContextAware`或`ApplicationEventPublisherAware`接口的类。例如,下面展示了一个实现`ApplicationContextAware`的示例: ```java public class UserBiz implements ...

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

    例如,在某个服务类中,我们需要访问到数据访问对象(DAO),可以通过实现 ApplicationContextAware 接口来获取到ApplicationContext 对象,然后使用该对象来获取到DAO 对象。 在 Spring Aware 标记接口使用案例...

    Spring通过ApplicationContext主动获取bean的方法讲解

    下面是一个示例代码,演示如何实现ApplicationContextAware接口来获取ApplicationContext: ```java @Component public class SpringContextUtil implements ApplicationContextAware { private static Logger ...

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

    在上面的代码中,我们使用了 Spring 的 `ApplicationContext` 来获取所有的接口实现类,并将其存储在一个 Map 中。这样,我们就可以轻松地获取某个接口的所有实现类。 方式二:借助 ServiceLoader 类 ...

    Java类获取Spring中bean的5种方式

    在Web应用中,我们可以利用`WebApplicationContextUtils`工具类从`ServletContext`中获取`ApplicationContext`。有两种方法,`getRequiredWebApplicationContext()`在找不到ApplicationContext时会抛出异常,而`get...

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

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

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

    ApplicationContextAware接口是Spring框架中的一种 Aware接口,通过实现该接口,可以获取ApplicationContext对象,从而获取bean对象。代码如下: @Service public class ApplicationContextHelper implements ...

    Spring Boot中Bean定义方调用方式解析

    在 Spring Boot 中,我们可以创建一个名为 SpringUtil 的工具类,该类实现 ApplicationContextAware 接口,并加入 Component 注解,让 Spring 扫描到该 Bean。这样,我们就可以在普通类中获取 applicationContext ...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件2

    此外,`@Component`注解使这个类成为了一个Spring Bean,`ApplicationContextAware`接口则允许我们获取并设置`ApplicationContext`,从而能够在`loadXmlConfigurations`方法中加载XML配置。 在实际开发中,你还需要...

    spring项目启动加载类到静态服务类中的三种方式.zip

    `ApplicationContextAware`是Spring提供的一个接口,它允许我们在类中注入ApplicationContext。首先,我们需要在静态服务类或者一个非静态的辅助类中实现这个接口。当Spring容器初始化完成后,会自动调用`...

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

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

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

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

Global site tag (gtag.js) - Google Analytics