今天大佬指出了我代码中不规范的地方,记录下来引以为戒。
1、log日志在记录对象时,最好用gson转换成字符串,避免未重写toString()导致的显示异常。
2、打印日志时直接打印e,不要输出e.getMessage或者e.printStackTrace
e.printStackTrace是将异常信息输出到控制台并且时sychronized的
e.getMessage输出的只是出了什么异常,但是异常在哪里并不清楚
e输出的内容跟e.printStackTrace一样,只是将内容输出到了文件中(即方法的堆栈信息)
3、log.error后要考虑是否应该抛出异常,因为此时异常已经被消费了,数据库增删改一定要抛出异常或者判断,查询视情况
4、git pull伴有一次merge,push没有
5、idea建议的设置
自动删除未使用的import的jar包,file---setting---editor---general---auto import 勾选OPtimize import
idea默认导入的jar超过3还是5个会自动变成.*,file--setting--editor--code style--java class count和names count数量设置比较大即可,如999
6、git blame fileName可以查看当前的git文件的每一行修改人员的信息 git blame -L n,m fileName 查看n行开始共m行的信息
7、遍历list时最好用原始的for循环(效率高于java8的streaming和foreach)
原始for循环,每次JVM仅仅增加一个数字,然后从内存取值
foreach,JVM会把foreach转换成一个iterator然后每次调用一次hashNext方法
8、springMVC的过程:
用户发起请求
前端控制器接受请求
前端控制器拿着请求去找处理器映射器
处理器映射器返回对应的处理器适配器
前端控制器去找返回的处理器适配器
处理器适配器的handle处理请求并返回一个ModelAndView
处理器适配器将ModelAndView返回给前端控制器
前端控制器拿着ModelAndView找视图解析器
视图解析器返回对应的view
前端控制器将model填充到view中,并将view填充到请求的request中返回页面