Annotations for Http params:
@RequestBody
@PathVariable
@RequestParam
@ModelAttribute
@ExceptionHandler & @ControllerAdvice(这个advice注解是在 spring 3.2 之后才有的) 及基于它们两个的 Spring MVC 异常处理:
问题: spring MVC 在 json 反序列化(如通过 @RequestBody 反序列化一个 enum)出错时,只返回 400,后台无任何 log!导致错误的排查比较困难。
。。。
http://stackoverflow.com/questions/6175600/spring-mvc-request-body-error-handling
解决:
。。。
http://www.mkyong.com/spring-mvc/spring-mvc-exceptionhandler-example/
http://www.javacodegeeks.com/2013/06/spring-mvc-error-handling-flow.html
Validation:
http://jinnianshilongnian.iteye.com/blog/1733708
Spring MVC 的 单元测试:
1 使用 MockHttpServletRequest & MockHttpServletResponse 等:
http://stackoverflow.com/questions/1401128/how-to-unit-test-a-spring-mvc-controller-using-pathvariable
JSON REST请求的话,参照下面链接设置MappingJacksonHttpMessageConverter:
http://stackoverflow.com/questions/9138555/spring-framework-test-restful-web-service-controller-offline-i-e-no-server-n
需要注意的是,这种方式无法对Controller的@Valid做验证。
2 如果 Spring 版本为 3.1+,可以考虑使用spring-test-mvc,使用它做spring mvc的单元测试,Controller的@Valid可以很好的被验证到:
http://stackoverflow.com/questions/12308213/how-do-i-get-spring-mvc-to-invoke-validation-in-a-junit-test
引入spring-test-mvc的maven依赖后,测试很简单,如下:
EmailRest controller = applicationContext.getBean(EmailRest.class);
MockMvc myMockController = MockMvcBuilders.standaloneSetup(controller).build();
DefaultRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/send").contentType(MediaType.APPLICATION_JSON)
.body("{\"email\":\"xxx@yyy.com\",\"subject\":\"您有新的好友请求,请登陆处理\",\"tag\":\"contactrequest\",\"content\":\"1234567890\"}".getBytes());
ResultActions ra = myMockController.perform(requestBuilder);
3 使用 spring 的 restTemplate
分享到:
相关推荐
个人学习spring时写的练习程序 未完,仅示例而已
dtcms mvc版本未完待续
spring boot-1.5.3官方文档的中文翻译,暂时没有翻译完,后续会更新
未完。。。 还有很多篇。。。 进阶篇 Spring Cloud Sleuth超详细实战 源码篇: 深入理解Feign之源码解析 深入理解Eureka之源码解析 深入理解Ribbon之源码解析 深入理解Hystrix之文档翻译 深入理解Zuul之源码解析 ...
48 Spring展望及后续(未完)慕课专栏(1)1
关于ajaxfileupload 文件上传实例,包括spring mvc 下后台接受上传请求时的处理代码。但目前是不完整的,未完待续...
本程序是struts spring hibernate的完整环境配置, 包括: struts1.3 spring 2.0 hibernate 3.1 的所有完整的包。 BeanNameAutoProxyCreator事务处理 中文乱码解决 MD5程序加密 AJAX验证码等 ...
android播放器未完待续
扫雷游戏 未完 大家一起完成 扫雷游戏 未完 大家一起完成
未完工程及遗留问题清单(表格模板、XLS格式).XLS
探索 ES6(未完)
9--[小黑点的旅行(未完待续)].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码9--[小黑点的旅行(未完待续)].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码9--[小黑点的旅行(未完待续)].zip...
工程介绍:SpringBoot项目脚手架,利用spring aop+java反射实现自定义注解校验参数 源码里有使用都例子在DemoContorller example1:校验userName参数必填 @CheckParams(notNull = true) private String userName;...
未完待续... nacos注册中心 demo项目 nacos-service-provider(提供服务项目) nacos-service-consumer(调用服务项目) 网关(用到sentinel + nacos) 步骤 启动nacos服务,参考网址: 个人账号:nacos密码:...
NEURAL CODE COMPLETION 未完ABSTRACT Code completion, an essential part of modern s
SIM900A模块系列调试(未完)1
pl-sql练习(未完).txt
softmax回归相关Python代码(未完待续)
供热工程设计说明文书未完待续.doc
个人手机网游作品展示,未完待续