zoukankan      html  css  js  c++  java
  • springboot中velocity tool中注入bean

    在使用springboo的时候,遇到一个问题,想在tool类中注入一个bean,一直失败,翻了下源码,是因为工具类的初始化方法为反射class调用newInstance方法,详见

    http://www.cnblogs.com/xiaoQLu/p/7292971.html

    那还有没有其他方法实现呢,请教了组内的大神,丢了如下一段代码我

    @Configuration
    public class WebAppConfigTest extends WebMvcConfigurerAdapter {
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
           registry.addInterceptor(new VelocityPageToolsInterceptor());
        }
    }
    
    class VelocityPageToolsInterceptor extends AbstractPageRenderContextHandlerInterceptor {
        private static final Map<String, Object> ATTR_MAP = Maps.newHashMap();
    
        static {
            Class<?> dateTool = ClassUtils.resolveClassName("com.xx.xx.类名", WebAppConfig.class.getClassLoader());
            ATTR_MAP.put("dateTool", BeanUtils.instantiate(dateTool));
        }
    
        @Override
        protected void postHandleOnPageRenderContext(HttpServletRequest request,
                                                     HttpServletResponse response, Object handler,
                                                     ModelAndView modelAndView) throws Exception {
            WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());
            modelAndView.getModel().put("testUtil", context.getBean("testUtil"));
            modelAndView.getModel().putAll(ATTR_MAP);
        }
    }

    上面最关键的代码就是 ModelAndView.getModel().put("", "")方法,就是把对象放到model中

  • 相关阅读:
    【Android】开发优化之——调优工具:TrackView,Method Profiling
    MapReduce:具体解释Shuffle过程
    Kafka编程实例
    常用的语句
    CDN
    iOS中的固定 高度
    iPhone手机屏幕的尺寸180330更新
    UITextField
    iOS基本网络请求
    Xcode界面简介
  • 原文地址:https://www.cnblogs.com/xiaoQLu/p/7403820.html
Copyright © 2011-2022 走看看