SpringMvc 获取ApplicationContext
有时,我们不通过Controller层进入Service层,比如同步数据,任务,以及文件上传共通Handler对文件处理后保存数据等都会由一个非Controller类调用Service。
这时候如果new Service会因为没有事务控制也没法打开jdbc连接,也不满足spring的bean管理。因此需要获取到spring创建的service。
ApplicationContext会在spring的扫描时加入进来。
获取方式:
需要创建一个类(例:ContextUtils)实现ApplicationContextAware接口。
会自动实现一个setApplicationContext的方法,spring在扫描完毕类后,调用ApplicationContextAware接口的实现类,自动传递applicationContext到这个类中。
创建一个自己的getBean方法获取自己想要的类。
public class ContextUtils implements ApplicationContextAware {
    private static ApplicationContext context;
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        context = applicationContext;
    }
    public static Object getBean(String strBeanName) {
        return context.getBean(strBeanName);
    }
}
在dispatch-context.xml中加入自己写的ContextUtils类。
<!-- ContextUtils -->
<bean id="contextUtils" class="com.pccw.solutions.retire.common.utils.ContextUtils"></bean>
这样就可以在自己想要的任何位置获取Bean.
SpringMvc 获取ApplicationContext的更多相关文章
- springMVC 使用WebApplicationContext获取ApplicationContext对象
		主要用于从application中获取bean 1.applicationContext 在web.xml中使用listener配置 <context-param> <param-n ... 
- spring mvc在Controller中获取ApplicationContext
		spring mvc在Controller中获取ApplicationContext web.xml中进行正常的beans.xml和spring-mvc.xml的配置: 需要在beans.xml中进行 ... 
- Spring获取ApplicationContext
		在Spring+Struts+Hibernate中,有时需要使用到Spring上下文.项目启动时,会自动根据applicationContext配置文件初始化上下文,可以使用ApplicationCo ... 
- 【转】SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法
		转自:http://www.coderli.com/junit-spring-test-applicationcontext JUnit单元测试用例中使用Spring框架,直接方式如下. @RunWi ... 
- spring获取ApplicationContext对象的方法——ApplicationContextAware
		一. 引言 工作之余,在看一下当年学的spring时,感觉我们以前都是通过get~ set~方法去取spring的Ioc取bean,今天就想能不能换种模型呢?因为我们在整合s2sh时,也许有那么一天就 ... 
- Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式
		转自:http://chinazhaokeke.blog.163.com/blog/static/109409055201092811354236 Spring获取ApplicationContex ... 
- Spring Boot 获取ApplicationContext
		package com.demo; import org.springframework.beans.BeansException; import org.springframework.contex ... 
- springMvc获取servletContext
		springMvc获取servletContext WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebA ... 
- spring 代码中获取ApplicationContext(@AutoWired,ApplicationListener)
		2017年度全网原创IT博主评选活动投票:http://www.itbang.me/goVote/234 学习spring框架时间不长,一点一滴都得亲力亲为.今天忽然觉得老是通过@Autowir ... 
随机推荐
- net web service 参数类型
			因为Web Services的执行是建立在XML架构之上的,所以它能够支持丰富的数据类型. 下表列出了使用SOAP协议时Web Services支持的数据类型: 类 型 含 义 基础类型 也即标准基 ... 
- JQuery 在网页中查询
			最近遇到客户的一个需求,要在网页中添加一个Search 功能,其实对于网页的搜索,Ctrl+F,真的是非常足够了,但是客户的需求,不得不做,这里就做了个关于Jquery Search function ... 
- OAuth 2.0:Bearer Token、MAC Token区别
			Access Token 类型介绍 介绍两种类型的Access Token:Bearer类型和MAC类型 区别项 Bearer Token MAC Token 1 (优点) 调用简单,不需要对请求进行 ... 
- 淘宝 code 使用
			淘宝 code上 svn 使用,基本流程: 新建项目 mkdir 创建 branches 文件夹(新建项目的时候,只有 trunk) copy 来创建新分支 checkout 主干和(或)分支到本地 ... 
- dede的织梦问答模块也可以支持arclist标签
			dedecms织梦问答等模块支持arclist标签,实现随机调用其他栏目文章 就是让模块模板文件支持调用主站的模板,因为调用主站下的/templets/default/模板,也就实现了支持调用所有标签 ... 
- typescript-dva脚手架
			2019有太多的东西想尝试,ts,GraphQL,SSR,docker,python,electron,小程序云后台,vue3等等,一个个来吧,用两天了解了下typescript,大概做了个webpa ... 
- bzoj 4911: [Sdoi2017]切树游戏
			考虑维护原树的lct,在上面dp,由于dp方程特殊,均为异或卷积或加法,计算中可以只使用fwt后的序列 v[w]表示联通子树的最浅点为w,且不选w的splay子树中的点 l[w]表示联通子树的最浅点在 ... 
- bzoj2565 最长双回文子串
			Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同).输入长度为n的串S,求S的最长双回文子串T, ... 
- 小峰servlet/jsp(4)EL表达式
			一.EL表达式内置对象: 二.EL表达式访问4种范围属性: 寻找值的顺序: page-->request-->session-->application; 三.EL表达式接收请求参数 ... 
- 学习笔记之100 TOP Ikm C++ Online Test Questions
			100 TOP Ikm C++ Online Test Questions 2017 http://interviewquestionstutorials.com/tag/100-top-ikm-c- ... 
