笔记33 Spring MVC的高级技术——Spring MVC配置的替代方案

一、自定义DispatcherServlet配置 

AbstractAnnotationConfigDispatcherServletInitializer所完成 的事情其实比看上去要多。在SpittrWebAppInitializer中,原来所编写的三个方法仅仅是必须要重载的abstract方法。但实际上还 有更多的方法可以进行重载,从而实现额外的配置。 此类的方法之一就是customizeRegistration()。 在AbstractAnnotationConfigDispatcherServletInitializer 将DispatcherServlet注册到Servlet容器中之后,就会调 用customizeRegistration(),并将Servlet注册后得到的 Registration.Dynamic传递进来。通过重 载customizeRegistration()方法,我们可以对 DispatcherServlet进行额外的配置。 

需求:在Spring MVC中处理multipart请求和文件上传

需要使用DispatcherServlet的 registration来启用multipart请求。可以重 载customizeRegistration()方法来设 置MultipartConfigElement,如下所示:

 

1     @Override
2     protected void customizeRegistration(Dynamic registration) {
3         // TODO Auto-generated method stub
4         super.customizeRegistration(registration);
5         registration.setMultipartConfig(new MultipartConfigElement("/tmp/spittr/uploads"));
6     }

 

设置了对multipart的支持,将上传文件的临时存储 目录设置在“/tmp/spittr/uploads”中。 

二、添加其他的Servlet和Filter

按 照AbstractAnnotationConfigDispatcherServletInitializer 的定义,它会创建DispatcherServlet和 ContextLoaderListener。但是,如果你想注册其他的Servlet、 Filter或Listener的话,就需要创建一个新的初始化器就可以了。基于Java的初始化器(initializer)的一个好处就在于可以定义任 意数量的初始化器类。最简单的方式就是实现 Spring的WebApplicationInitializer接口。 

 

 

 

猜你喜欢

转载自www.cnblogs.com/lyj-gyq/p/9005382.html
今日推荐