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.

  • 相关阅读:
    冲刺第十三天
    冲刺第十二天
    冲刺第十一天
    Android Studio三种运行方法
    第十三周学习进度
    冲刺第一阶段意见评论
    第十二周学习进度
    冲刺第十天
    大二暑假周总结(五)
    大二暑假周总结(四)
  • 原文地址:https://www.cnblogs.com/DennyZhao/p/8143646.html
Copyright © 2011-2022 走看看