`
gao234
  • 浏览: 32662 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在应用中获取Spring的应用上下文

阅读更多

第一种方法,在servlet中

ServletContext servletContext =this.getServletContext();

WebApplicationContext wac = WebApplicationContextUtils.
                                    getRequiredWebApplicationContext(servletContext);

User user = (User)wac.getBean("user");
 

第二种方法,做一个ApplicationContextAware的Bean,并实现setApplicationContext方法

public class ApplicationContextUtil implements ApplicationContextAware
{
    private static ApplicationContext applicationContext = null;
    /** Creates a new instance of ApplicationContextUtil */
    public ApplicationContextUtil()
    {
    }
    public void setApplicationContext(ApplicationContext applicationContext)
                           throws BeansException
    {
        this.applicationContext = applicationContext;
    }
    public static ApplicationContext getApplicationContext()
    {
        return applicationContext;
    }
}
 


并做配置

<bean id="applicationContextUtil"
        class="ApplicationContextUtil"/>
 

我的项目中有些地方用到了工厂模式+策略模式,所以部分策略对象是由工厂动态提供,这种对象中如果要获得由spring管理的对象,就需要一个工具类,这个类通过上面第二种方式获得Spring应用上下文,然后拿到指定对象,代码如下:

public class SpringUtil implements ApplicationContextAware{
	private static ApplicationContext context;
	
	public SpringUtil(){
		
	}

	public static <T> T getObject(String id,Class<T> clazz) throws BeanNotOfRequiredTypeException,NoSuchBeanDefinitionException,BeansException{
		return context.getBean(id,clazz);
	}

	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		SpringUtil.context = applicationContext;
	}
}
分享到:
评论

相关推荐

    springmvc spring 两套上下文问题

    总的来说,理解和管理Spring MVC和Spring的两套上下文是开发高质量Spring应用的重要环节。这涉及到Bean的生命周期管理、依赖注入以及不同上下文间的通信。正确配置和使用这两套上下文,能确保应用的稳定性和可维护性...

    利用Spring Context上下文创建自定义对象

    Spring Context是Spring框架的应用上下文,它充当了全局容器,存储了应用的所有bean以及它们之间的依赖关系。在Spring应用中,Context通常通过`ApplicationContext`接口来实例化,如`ClassPathXmlApplicationContext...

    线程中获取spring 注解bean

    在提交任务时,可以将bean作为参数传递,或者在任务内部使用`ApplicationContextAware`接口获取应用上下文,从而获取bean。 4. **ApplicationContextAware**:让线程处理类实现`ApplicationContextAware`接口,...

    详解在SpringBoot应用中获取应用上下文方法

    `setApplicationContext` 方法用于设置应用上下文,而 `getBean` 方法用于从应用上下文中获取 Bean 对象。 在启动入口类中注入 applicationContext 在 SpringBoot 应用中,我们需要在启动入口类中注入 `...

    Spring 应用上下文获取 Bean 的常用姿势实例总结

    Spring 应用上下文获取 Bean 是一个常见的操作,在 Spring 框架中获取 Bean 对象是非常重要的。本文将总结 Spring 应用上下文获取 Bean 的常用姿势实例,并对其实现方法和操作注意事项进行详细的分析和讲解。 一、...

    Spring获取ApplicationContext对象工具类的实现方法

    在Spring中,ApplicationContext(应用程序上下文)是容器的核心,负责配置和管理应用中对象的生命周期和依赖关系。在实际开发过程中,经常需要从各个角落获取到这个ApplicationContext对象,以便于能够使用Spring...

    在Servlet直接获取Spring框架中的Bean.docx

    在Web应用中,Spring通常会创建一个WebApplicationContext,它与Servlet上下文(ServletContext)关联。 **方法一:使用WebApplicationContextUtils** 在Servlet中,我们可以利用`WebApplicationContextUtils`工具...

    在自定义spring aop中使用el获取拦截方法的变量值。

    这通常涉及到Spring的代理机制、AOP的切面定义、方法调用上下文以及EL的语法和功能。 Spring AOP是Spring框架的一个重要特性,它允许开发者创建具有横切关注点的模块,如日志记录、事务管理等。这些关注点可以被...

    spring获取weblogic jndi数据源的两种方式

    - `java.naming.factory.initial`: 初始上下文工厂类名。 - `java.naming.security.principal`: 访问WebLogic服务器所需的用户名。 - `java.naming.security.credentials`: 对应用户的密码。 #### 总结 通过...

    如何获得spring上下文的方法总结

    AnnotationConfigApplicationContext是从一个或多个基于Java的配置类中加载Spring应用上下文的方式。通过使用@Configuration注解,可以将配置类作为上下文的来源。 2. AnnotationConfigWebApplicationContext ...

    上下文应用

    标题中的“上下文应用”可能指的是在软件开发中,尤其是Java或Spring框架中常见的“上下文(Context)”概念。上下文通常是指程序运行时的状态或环境,它可以包含对象、配置信息以及其他必要的数据,使得不同的组件...

    在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息

    在Spring Boot应用中,通常使用`AnnotationConfigApplicationContext`加载基于注解的配置。 2. 如果你的类是Spring的一部分,可以通过`@Autowired`注解注入`ApplicationContext`,然后在需要的地方使用它。 3. 或者...

    Spring Cloud dalston 中文文档 参考手册

    在Spring Cloud Dalston中,应用程序上下文服务是构成微服务架构的关键组成部分。服务引导应用程序上下文是Spring Cloud的特色之一,它允许应用程序在启动时进行微服务的引导。开发者可以利用应用程序上下文层次结构...

    利用spring的ApplicationContext在程序中唤醒quartz的job

    通过在Spring配置中定义`SchedulerFactoryBean`,我们可以方便地配置Job和Trigger,并利用ApplicationContext获取Job的Bean实例。在测试或服务类中,我们可以利用这些配置启动Job,从而实现程序中的动态任务调度。这...

    SpringCloud.pdf

    Spring Cloud Context 添加了一个引导上下文,作为主应用程序上下文的父上下文,负责加载外部配置属性和解密。通过设置 `spring.cloud.bootstrap.enabled`,可以选择启用或禁用引导过程。应用程序上下文层次结构允许...

    spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext

    在 Spring 中,ApplicationContext 是一个至关重要的接口,它是应用上下文的实现,负责管理bean的生命周期和装配。标题提到的“ClassPathXmlApplicationContext”是 Spring 提供的三种 ApplicationContext 实现之一...

    三种整合 Struts 应用程序与 Spring 的方式

    无论选择哪种方式,Spring的ContextLoaderPlugin都是必要的,它会在Struts的ActionServlet启动时加载Spring的配置和应用程序上下文。 值得注意的是,Spring的AOP支持提供了拦截器,可以用来处理横切关注点,如日志...

    Spring5.pdf

    6. Spring Context:是一个配置文件,提供了一个配置Spring应用的上下文环境,是容器的运行基础。 7. Spring Web MVC:是Spring的Web模块,它构建在Spring Context之上,提供了模型-视图-控制器(MVC)的实现。 ...

Global site tag (gtag.js) - Google Analytics