spring mvc中返回json数据的不同方法
利用<code>@responsebody</code>注解修饰控制器方法,并在xxx-servlet.xml中开启spring mvc支持——<code><mvc: annoation-driven/></code>,这种机制背后的原理是messageconverter。
最近用mockito写单元测试的感受,单元测试有两点好处:(1)利于解耦代码,降低代码的耦合性,在写单测的过程中,你会不自觉将不属于当前业务逻辑的代码分割出去;(2)单元测试是修改代码的有力保障,使得我们在修改代码之后能及时测试本次修改是否正确。总之:单元测试并不只是为了验证你当前所写的代码是否存在问题,更为重要的是它可以很大程度的保障日后因业务变更、修复bug或重构等引起的代码变更而导致(或新增)的风险。
idea的使用经验
必备插件:maven helper,用于分析jar包冲突
常用快捷键
idea的左下角,灰色方块,光标cover上去以后可快速唤出各个view
comman + y,删除一行
alt + enter:当光标在类名时,使用该快捷键可以创建测试用例、创建子类和使得该类局部化;当光标在局部变量上时,使用该快捷键可以添加javadoc、转变成threadlocal变量、转变成atomic变量、改变变量的开放级别;当光标在函数上时,也有对应的功能,可自己去探索;
alt + command + u:将光标放在某个类上,通过该快捷键可以构造出该类所属的继承体系,如下图所示:
viewresolver的继承体系
git版本管理
查看commit记录
查看每个commit的修改记录
查看指定文件的修改历史
比较不同版本直接的diff
提交代码(提交之前可做静态扫描、优化import、查看todo等)
分支合并,区分rebase和merge的区别
远程调试功能 :在edit configuration中可新建remote,指定远程服务器的ip地址和端口,即可远程调试
性能测试时需要注意的
日志级别调成warn级别;
mybatis报错:“error querying database. cause: java.lang.unsupportedoperationexception”,错误代码如下:
在这里,resulttype指的是查询到的每条记录的类型,因此应该用<code>java.lang.string</code>。
作为一个对外开放的接口,或者供其他模块调用的接口,必须做到以下几件事:
入参检查
异常处理
统一的结果生成
配套的单元测试和接口测试用例,防止代码修改引入新的bug
在通过url参数传入时间时,后台可考虑使用initbinder自动将时间字符串转换成date对象,并绑定到controller的入参,例子代码如下:
常用git作为代码管理工具,除了熟练使用idea中提供的图形化git管理功能,也需要了解这些gui背后对应的指令,那么久需要看如下资料:
<a href="http://backlogtool.com/git-guide/cn/" target="_blank">猴子都能懂的git入门</a>
<a href="https://git-scm.com/book/en/v2" target="_blank">pro git(v2)</a>
引用官方文档中的一张图片,可以清晰地看出dispatcherservlet上下文和root应用上下文之间的关系:root应用上下文用于提供service、数据库等bean,可供多个dispatcherservlet上下文使用。
mvc-context-hierarchy.png
最后,再重温下spring mvc的处理流程,在进行java web开发的时候,也时刻不要忘记对httprequest的处理流程。
spring mvc详细运行流程图.png