[Spring开发]获取上下文对象

在开发Dubbo的过程中,多次读取同一配置文件加载上下文是错误的方法,对于已经加载到Spring容器中的context对象,其实是可以通过实现接口来获取的。

首先,实现ApplicationContextAware接口,自定义的实现类SpringContextUtil。

SpringContextUtil.java

package com.mohrss.service;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/*
 * Class: SpringContextUtil
 * Function:用于获得当前Spring上下文环境的工具类
 */
public class SpringContextUtil implements ApplicationContextAware {

	// Spring应用上下文环境
    private static ApplicationContext context;  

    /**
     * 实现ApplicationContextAware接口的回调方法。设置上下文环境
     *
     * @param applicationContext
     */
    public void setApplicationContext(ApplicationContext applicationContext) {
        SpringContextUtil.context = applicationContext;
    }  

    /**
     * @return ApplicationContext
     */
    public static ApplicationContext getApplicationContext() {
        return context;
    }  

    public static Object getBean(String name) throws BeansException {
        return context.getBean(name);
    }  

}

  

实现这个工具类后,需要在配置文件中进行配置。

    <bean id="springContextUtil" class="com.mohrss.plugin.SpringContextUtil" />

  

之后即可在代码中进行调用,如:

LogService ls = (LogService)SpringContextUtil.getApplicationContext().getBean("testLogService");

注:原创博客,转载请注明。  

原文地址:https://www.cnblogs.com/Vivianwang/p/9454866.html

时间: 2024-10-30 04:43:53

[Spring开发]获取上下文对象的相关文章

Spring ApplicationContextAware获取上下文

一.ApplicationContextAware 用处 Spring 提供了ApplicationContextAware类,通过它可以获取所有bean上下文. 二.怎么用? ①.定义一个工具类,去实现 ApplicationContextAware,实现 setApplicationContext方法即可 public class SpringContextUtil implements ApplicationContextAware { private static Application

如何在手动获取spring中的bean(Spring ApplicationContextAware获取上下文)

一.目的 写了一个项目,多个module,然后想在A模块中实现固定的config注入,当B模块引用A时候,能够直接填写相对应的配置信息就行了.但是遇到一个问题,B引用A时候,A的配置信息总是填充不了,获取不到在B中配置好的信息.猜测原因:因为项目的的bean文件没有被统一管理. 二.ApplicationContextAware 接口 Spring 提供了ApplicationContextAware类,通过它可以获取所有bean上下文. 也就是说,当一个类实现了这个接口之后,这个类就可以方便地

在spring中获取代理对象代理的目标对象工具类

问题描述:: 我现在遇到个棘手的问题,要通过spring托管的service类保存对象,这个类是通过反射拿到的,经过实验发现这个类只能反射取得sservice实现了接口的方法,而extends类的方法一律不出现,debug后发现这个servie实例被spring替换成jdkdynmicproxy类,而不是原始对象了,,它里面只有service继承的接口方法,而没有extends 过的super class方法,怎么调用原生对象的方法!!!!! 用托管的spring service类调用getCl

Spring 框架获取 datasource对象的方法

1,使用org.springframework.jdbc.datasource.DriverManagerDataSource  2.使用org.apache.commons.dbcp.BasicDataSource  3.使用org.springframework.jndi.JndiObjectFactoryBean 总结:3种方式中的第一种没有使用连接池,故少在项目中用到,第三种方式需要在web server中配置数据源,不方便于部署,本人推荐使用每二种方式进行数据源的配置. 读配置文件的方

手动从Spring中获取指定对象

1.创建ApplicationContext对象: ApplicationContext context = new FileSystemXmlApplicationContext("D:/workspace/test/resources/applicationContext-resource.xml"); 2.调用getBean方法(注意参数以xml配置中的bean的名字匹配):     trDAO = (ITestResultDAO) context.getBean("t

[译] ASP.NET 生命周期 – ASP.NET 上下文对象(五)

ASP.NET 上下文对象 ASP.NET 提供了一系列对象用来给当前请求,将要返回到客户端的响应,以及 Web 应用本身提供上下文信息.间接的,这些上下文对象也可以用来回去核心 ASP.NET 框架特性. 上下文对象提供了应用,当前请求,与当前请求相关联的响应的信息.也提供了对多数重要的 ASP.NET 平台服务的访问,比如安全与状态数据.我们可以在 MVC 框架的 controllers 和 views 中使用上下文对象来根据当前的请求或者应用状态数据来调整我们应用的响应.在创建模块或者处理

[07] ServletContext上下文对象

1.上下文的概念 我们在说到Servlet的继承关系时,提到自定义Servlet实际上间接实现了Servlet和ServletConfig两个接口,其中ServletConfig接口中定义了一个方法叫getServletContext,用以获取Servlet运行的上下文环境对象. 这里就要先说明一下,如何理解所谓的 "上下文". 每个Web项目,运行时部署在Web应用服务器(如Tomcat.Jetty.WebLogic etc.)下,我们称之为一个应用(Application).我们知

基于Spring DM管理的Bundle获取Spring上下文对象及指定Bean对象

在讲述服务注册与引用的随笔中,有提到context.getServiceReferences()方法,通过该方法可以获取到OSGI框架容器中的指定类型的服务引用,从而获取到对应的服务对象.同时该方法还可以通过Bundle-SymbolicName名称获取到该Bundle中的Spring上下文对象,同样根据Spring上下文对象,我们也可以很好的获取到对应服务对象(服务对象,就是Spring中的一个Bean对象) String callName = "com.sample.service.IHel

Spring获取上下文并创建对象的方法

using Spring.Context; using Spring.Context.Support; namespace YTO.WeiXin.Core { public class SpringContainer { private static IApplicationContext AppCxt; /// <summary> /// 获取上下文 /// </summary> /// <returns>上下文对象</returns> public st