zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    gimp 语言设置
    gnome 3.4 评测
    linux 添加PATH路径
    永中office2012 linux版 使用初步感受
    Bio per常规用法(1、读取序列)
    blast程序 介绍 简介
    genewise运行过程中遇到的错误及其解决方法
    gnome3 隐藏标题栏
    Bio per常规用法(2、翻译蛋白)
    genewise 编译过程中遇到的 getline冲突
  • 原文地址:https://www.cnblogs.com/DennyZhao/p/8143646.html
Copyright © 2011-2022 走看看