`
gao234
  • 浏览: 31938 次
  • 性别: 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;
	}
}
分享到:
评论

相关推荐

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

    主要介绍了Spring 应用上下文获取 Bean,结合实例形式总结分析了Spring 应用上下文获取 Bean的实现方法与操作注意事项,需要的朋友可以参考下

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

    本篇文章主要介绍了详解在SpringBoot应用中获取应用上下文方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    Spring中文帮助文档

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Spring与Web环境集成1

    1.1 ApplicationContext应用上下文获取方式 1.2 Spring提供获取应用上下文的工具 1.4 配置ContextLoaderListen

    Spring攻略(第二版 中文高清版).part1

    13.4 管理集成测试中的应用上下文 520 13.4.1 问题 520 13.4.2 解决方案 520 13.4.3 工作原理 521 13.5 向集成测试注入测试夹具 526 13.5.1 问题 526 13.5.2 解决方案 526 13.5.3 工作原理 527 13.6...

    Spring攻略(第二版 中文高清版).part2

    13.4 管理集成测试中的应用上下文 520 13.4.1 问题 520 13.4.2 解决方案 520 13.4.3 工作原理 521 13.5 向集成测试注入测试夹具 526 13.5.1 问题 526 13.5.2 解决方案 526 13.5.3 工作原理 527 13.6...

    simplest-kie-spring-app:史上最简单的 Kie Spring 应用

    最简单的 kie-spring-app 史上最简单的 Kie Spring 应用 它使用 Spring 进行 KieBase 配置并触发一条规则,在控制台中打印 Hello World。... 我们从 Spring 上下文中获取 ksession bean 并使其执行所有规则。

    spring in action英文版

     2.1.2 使用应用上下文  2.1.3 Bean的生命  2.2 基本装配  2.2.1 使用XML装配  2.2.2 添加一个Bean  2.2.3 通过Set方法注入依赖  2.2.4 通过构造函数注入依赖  2.3 自动装配  2.3.1 处理...

    Spring in Action(第二版 中文高清版).part2

    2.1.2 使用应用上下文 2.1.3 Bean的生命 2.2 创建Bean 2.2.1 声明一个简单的Bean 2.2.2 通过构造函数注入 2.3 注入Bean属性 2.3.1 注入简单的数值 2.3.2 使用其他的Bean 2.3.3 装配集合 2.3.4 装配空值 ...

    Spring in Action(第二版 中文高清版).part1

    2.1.2 使用应用上下文 2.1.3 Bean的生命 2.2 创建Bean 2.2.1 声明一个简单的Bean 2.2.2 通过构造函数注入 2.3 注入Bean属性 2.3.1 注入简单的数值 2.3.2 使用其他的Bean 2.3.3 装配集合 2.3.4 装配空值 ...

    Spring API

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Spring面试题

    ☆ Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域...

    Spring in Action(第2版)中文版

    2.1.2使用应用上下文 2.1.3bean的生命 2.2创建bean 2.2.1声明一个简单的bean 2.2.2通过构造函数注入 2.3注入bean属性 2.3.1注入简单的数值 2.3.2使用其他的bean 2.3.3装配集合 2.3.4装配空值 2.4自动装配 ...

    spring-best-practics:Spring最佳实践演示案例

    最佳实践总结了本人多年的Java开发中的一些开发经验以及工具类和Spring框架的应用采用了项目Demo的方式把零散的内容联系在一起去展示其用法,可以直接拿来作为种子项目,用于快速建造中小型的spring-boot项目项目...

    spring-cloud-vault:与HashiCorp Vault的配置集成

    Spring Cloud Vault Config为分布式系统中的外部化配置提供了客户端支持。 使用您可以在中心位置管理所有环境中应用程序的外部机密属性。... 特征 Spring Cloud Vault ... Bootstrap应用程序上下文:主应用程序的父上

    J2EE应用开发详解

    50 4.2 开发和部署一个简单的Servlet 51 4.3 Servlet常用API介绍 53 4.3.1 Servlet实现相关 54 4.3.2 Servlet配置相关 54 4.3.3 Servlet异常相关 55 4.3.4 请求和响应相关 55 4.3.5 会话跟踪 56 4.3.6 Servlet上下文 ...

    springboot参考指南

    测试Spring应用 iii. 35.3. 测试Spring Boot应用 i. 35.3.1. 使用Spock测试Spring Boot应用 iv. 35.4. 测试工具 i. 35.4.1. ConfigFileApplicationContextInitializer ii. 35.4.2. EnvironmentTestUtils iii. 35.4....

    Spring学习

    Springboot框架源码解读学习Spring框架主要有SpirngMVC提供...但是当上下文重新刷新完毕后可以通过context工厂获取Bean2. SpringBean生命周期3.SpringAOP4.SpringIOC5.Spring事务6.弹簧过滤器7.弹簧监听器8.弹簧拦截器

    spring-security-boot-preauth

    在生产应用程序中,您需要确保令牌已验证。 TokenFilter将令牌转换为有效用户。 为简单起见,当前是通过假设令牌为用户名来完成的。 角色是一个硬编码常量。 在生产应用程序中,翻译将是验证令牌的结果。 ...

    java微信公众号MVC开发框架

    url是微信公众号配置的服务器地址的最后部分(不包括域名和web应用上下文),是识别微信公众号的唯一标识,透过url我们可以通过微信上下文帮助类(WeixinContextHelper)的静态方法获取到微信上下文及访问token,...

Global site tag (gtag.js) - Google Analytics