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中

  • 相关阅读:
    PostgreSQL pg_hba.conf 文件简析
    Centos 查看端口占用情况
    Nginx 从0开始学
    windows 杀死端口号对应进程
    MyBatis基础-05-缓存
    MyBatis基础-04-动态sql
    MyBatis基础-02
    SpringMVC基础-14-SpringMVC与Spring整合
    SpringMVC基础-13-SpringMVC运行流程
    SpringMVC基础-12-异常处理
  • 原文地址:https://www.cnblogs.com/xiaoQLu/p/7403820.html
Copyright © 2011-2022 走看看