工做之经验之谈4

1. 对于一些类型或者步骤,通常使用整数类型做为值。为了防止新增类型或步骤,通常能够可定义不连续值。例如:0 10 20 30 等,若是有新增类型或者步骤,能够定义值为2,3,4等。前端

2. 自动化代码生成工具java

3. 若是定义字段类型为int,在使用Integer转换的时候,会默认调用方法将Integer转换为int,若是Integer为null,会报空指针异常。须要判断是否为null。git

4. 使用spring MVC传递参数时,若是报400错误,多是类型转换错误,请确认传递的参数类型是否一致。github

5. 详细的注释:每一个参数什么意思;有哪些状况须要处理;若是有Map,map的key和value值有哪些;使用<br>换行web

6. static静态方法或静态代码块,进行数据初始化redis

7. service引用别的service,尽可能不要引用别的mapperspring

8. git的使用sql

9. map中key值为字符串时,按int型排序:shell

    Map<String,Integer> sortMap = new TreeMap<>(new Comparator<String>() {数据库

            public int compare(String o1, String o2) {

                       return Integer.parseInt(o1)-Integer.parseInt(o2);

             };

     });

10. token认证,拦截器。使用基于 Token 的身份验证方法,在服务端不须要存储用户的登陆记录。大概的流程是这样的:

      1). 客户端使用用户名跟密码请求登陆

      2). 服务端收到请求,去验证用户名与密码

      3). 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

      4). 客户端收到 Token 之后能够把它存储起来,好比放在 Cookie 里或者 Local Storage 里

      5). 客户端每次向服务端请求资源的时候须要带着服务端签发的 Token

      6). 服务端收到请求,而后去验证客户端请求里面带着的 Token,若是验证成功,就向客户端返回请求的数据

       token:加密 ; 请求时携带 ; 缓存起来

11. 模拟post请求:amber 和 postman

12. 使用guava中的工具类

13. 使用泛型,简化代码

14. 使用lombok中的@Data减小setter和getter方法

15. 实体类继承

16. 自动构建工具,jenkins

17. 相同的代码提取成复用方法

18. 缓存不变的内容,例如:区域、城市

19. 数据库插入或者更新,时间自动生成

20. 分页封装,将设计分页的内容提取出来,例如:放到intercept和ThreadLocal中

21. 员工/岗位:查询员工使用员工,查询上下级关系使用岗位。岗位保存历史信息,同一个员工的每一个时间段只有一个处于激活状态。

22. 封装返回对象

23. mybatis:

      HashMap:<select id="getDealerVisitRecordCount" resultType="int" parameterType="java.util.Map" >

      in语句判断,判断是否为空以及长度是否大于0:

      <if test="positionIdList!=null and positionIdList.size!=0">

               a.position_id in

                      <foreach collection="positionIdList" item="id" index="index"  open="(" close=")" separator=",">

                                       #{id}

                      </foreach> 

        </if> 

        大于和小于:

         <if test="startDate!=null"> 

                    AND a.visit_time &gt; #{startDate} 

         </if>

 

24. 一个项目,若是一切正常,多是访问路径错了。包括:IP,项目名,类路径,方法路径。更新maven项目可能致使项目路径由/变为项目名。

25. 在eclipse中新建simple Maven project项目后,pom.xml报错:

      web.xml is missing and <failOnMissingWebXml> is set to true

      解决方法:

      在Java EE窗口下,打开项目,单击Deployment Descriptor,右键单击:Generate Deployment Descriptor Stub

      注意,只有新建简单项目,打war包的时候,才会出现上面的操做。

26. 直接使用:PrepareStatement

      Class.forName(db_driver);

      conn = DriverManager.getConnection(url, "root", "123123");

       ps = conn.prepareStatement(sql);

      ResultSet rs = ps.executeQuery(sql);

27. List、Set、 数组等转字符串:

      list转字符串:str = StringUtils.join(list.toArray(), ",");

      符串数组转为字符串:str = StringUtils.join(strArray, "-");

      set转换为字符串:str = StringUtils.join(set.toArray(), ";");

28. 本身的项目,一个方法,各类状况,各类测试

29. guava处理字符串与List之间,字符串与map之间的转换:

      List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom");  

     String result = Joiner.on(",").join(names);  

     参考:http://blog.csdn.net/sunhuwh/article/details/41291515

30. 自动分页:https://github.com/pagehelper/Mybatis-PageHelper

31. 使用jenkins部署项目时,打包等都没问题,只有部署有问题。能够经过tomcat下的日志查看错误。

32. 经过抛出自定义异常来获取返回信息给前端

33. 一直查看后台日志,来判断是否有错误

34. 写SQL语句来查询一些经常使用东西否,方便查看

35. 设计一个表时,要知道这个表都会显示显示哪些内容。须要保存哪些信息,之后用。(例如:记录人员等)

36. 在插入数据时,若是有字段限制惟一。为防止数据重复插入致使异常。可使用下面三种方法:

       1). 使用redis,redis操做为单线程。标记已有线程在处理这件事。例如:手机号

       2). 使用ON DUPLICATE KEY UPDATE

       3). 捕获重复字段异常

37. 当超连接不表示真正访问路径时,能够按F12,经过点击超连接,查看网络请求来确认真正的访问路径。

38. 记录操做日志,一些关键信息记录到数据库中,方便之后查询。但对于错误信息,通常记录到文件。若是错误日志也记录到数据库,可能会在非法攻击的时候致使数据库崩溃。

39. 一些专业的羊毛党,很是强大。能够经过程序辨别短信验证码等,刷注册等。通常只能经过业务解决,如:让对方投资才给优惠,或者直接下线活动。

40. xshell上的连接有明确的名字,不要全用IP地址做为名字

41. 保存经常使用SQL。数据库用户名和密码

42. 保存经常使用访问地址

43. 定时回收旧文件 

44. 若是报错找不到类,jar又确实有,能够反编译jar包看看jar包里面有没有相关类。

45. restTemplate请求资源时 设置请求头:

      1)HttpHeaders requestHeaders = new HttpHeaders();

            requestHeaders.add("key1", "values");

            requestHeaders.add("key2", "ddd");

       2)HttpEntity<String> requestEntity = new HttpEntity<String>(null, requestHeaders);

             ResponseEntity<String> response = template.exchange(url, HttpMethod.GET, requestEntity, String.class, params);

             String sttr = response.getBody();

             参见:https://blog.csdn.net/u010139801/article/details/72770123

46. 提交的代码不生效怎么办? 

      1)确认git上已有最新代码

      2)反编译服务器上代码

      3)本地分支验证

      4)监控日志,不行的话新增日志。新增日志包括是否执行,执行的中间结果是什么 

47. 必定要有异常监控,否则的话很尴尬

48. 前端页面空白,能够debug模式,看看哪些文件没有加载成功

相关文章
相关标签/搜索