@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;}}
org.springframework.bootspring-boot-starter-webcom.fasterxml.jackson.corejackson-databindcom.alibabafastjson1.2.56
配置fastjson的httpmessageconverter
@configuration
public class myfastjsonconfig {@beanfastjsonhttpmessageconverter fastjsonhttpmessageconverter() {fastjsonhttpmessageconverter converter = new fastjsonhttpmessageconverter();fastjsonconfig config = new fastjsonconfig();config.setdateformat("yyyy-mm-dd");config.setcharset(charset.forname("utf-8"));config.setserializerfeatures(serializerfeature.writeclassname,serializerfeature.writemapnullvalue,serializerfeature.prettyformat,serializerfeature.writenulllistasempty,serializerfeature.writenullstringasempty);converter.setfastjsonconfig(config);return converter;}
}
@configuration
public class mycommonsmultipartresolver {@beanpublic commonsmultipartresolver commonsmultipartresolver() {commonsmultipartresolver commonsmultipartresolver = new commonsmultipartresolver();commonsmultipartresolver.setresolvelazily(true);//resolvelazily属性启用是为了推迟文件解析,以在在uploadaction中捕获文件大小异常commonsmultipartresolver.setmaxuploadsize(1024);commonsmultipartresolver.setdefaultencoding("utf-8");return commonsmultipartresolver;}
}
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 userinfo() {map map = new hashmap<>();map.put("usename","路遥");map.put("gender","男");return map;}
} @restcontroller
public class globalcontroller {@getmapping("/global")public void globalparma(model model) {map map = model.asmap();set strings = map.keyset();iterator iterator = strings.iterator();while (iterator.hasnext()) {string next = iterator.next();object o = map.get(next);system.out.println(next ">>>>>>" o);}}
}