javascript
spring boot 整合web开发之文件上传、静态资源访问、异常处理、返回json数据 -尊龙游戏旗舰厅官网
-
目录
springboot 整合web开发 - 返回json数据
- 静态资源访问
- 文件上传
- 全局异常
1、返回json数据
springboot默认的是jackson-databind做为json处理器、也可以使用自定义转换器:gson、fastjson
gson集成方式为:在pom文件中排除jackson-databind jar包,添加gson包。
springboot默认提供了gson自动转换类gsonhttpmessageconvertersconfiguration,因此gson依赖添加成功后,可以像使用json-databind那样使用gson。但是如果想格式化日期等操作得需要自己自定义。
@configuration public class gsonconfig {@beangsonhttpmessageconverter gsonhttpmessageconverter() {gsonhttpmessageconverter gsonhttpmessageconverter = new gsonhttpmessageconverter();gsonbuilder builder = new gsonbuilder();builder.setdateformat("yyyy-mm-dd");builder.excludefieldswithmodifiers(modifier.protected);gson gson = builder.create();gsonhttpmessageconverter.setgson(gson);return gsonhttpmessageconverter;}}fastjson集成方式:在pom文件中排除jackson-databind jar包,添加fastjson
对于fastjsonhttpmessageconverter的配置,还有另一种方式。实现wevmvcconfigurer接口(spring5.0之前继承webmvcconfigureradapter类来实现)
@configuration public class mywebmvcconfig implements webmvcconfigurer {//处理json@overridepublic void configuremessageconverters(list2、静态资源访问
springboot默认会过滤所有的静态资源,默认静态资源5个位置(classpath:/meta-inf/resources/、classpath:/resources/、classpath:/static/、classpath:/public/、/),优先级依次降低。
自定义过滤策略:1)、可以在application.properties直接定义过滤规则
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static
2)、java编码实现
@configuration public class mywebmvcconfig implements webmvcconfigurer {//处理json@overridepublic void configuremessageconverters(list3、文件上传
文件上传一共涉及两个组件,一个是commonsmultipartresolver基于commons-fileupload来处理,另一个是standardservletmultipartresolver基于serlver3.0multipart 。springboot默认采用的是standardservletmultipartresolver做为上传组件。
如果想使用commonsmultipartresolver做为上传组件代码如下:
pom文件需要加入common jar包
4、全局异常处理
关键字@controlleradvice
1)、返回resonse代码如下,上传文件大小超过限制就会输出到页面。
@controlleradvice public class customerexceptionhandler {@exceptionhandler(maxuploadsizeexceededexception.class)public void uploadexception(maxuploadsizeexceededexception e, httpservletresponse resp) throws ioexception {resp.setcontenttype("text/html;charset=utf-8");printwriter out = resp.getwriter();out.write("上传文件大小超限");out.flush();out.close();} }2)、返回modelandview
@controlleradvice public class customerexceptionhtmlhandler {@exceptionhandler(maxuploadsizeexceededexception.class)public modelandview uploadexception(maxuploadsizeexceededexception e) throws ioexception {modelandview view = new modelandview();view.addobject("msg","上传文件超限");view.setviewname("/error");return view;} }@controlleradvice还可以配置全局参数,具体代码如下
@controlleradvice public class globalconfig {@modelattribute(value = "info")public map
以上所有代码都在:https://github.com/fadehub/spring-boot-learn 下面的spring-boot-web工程下
总结
以上是尊龙游戏旗舰厅官网为你收集整理的spring boot 整合web开发之文件上传、静态资源访问、异常处理、返回json数据的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: