美文网首页Java Web架构设计收藏
Java Web技术经验总结(七)

Java Web技术经验总结(七)

作者: 程序熊大 | 来源:发表于2016-06-30 14:02 被阅读1786次
    1. apache-commons-collections升级
      apache-commons项目群的地址在:link。最近开发时发现,原来的apache-commons-colllections依赖库不能用了,然后去官网查了下,发现近期apache-commons-collections进行了迁移。如下所示:

      apache-commons项目迁移
    2. MyBatis中,#和$符号的区别?SQL的参数读取要用#,表示占位符;给出如下SQL语句:

    <select id="getByKpInPaging" resultMap="calllogNumberOutgoingBeanResultMap">
        SELECT
          DISTINCT a.number, a.outgoing_count, b.name, b.icon
        FROM
             a_detail a outer join b_detail b
        WHERE
          calllog.kp=#{kp}   AND  contact.kp=#{kp}     AND      contact.number=calllog.number
       LIMIT #{start}, #{pageSize}
    </select>
    

    如果我在获取kp参数的时候使用#符号,则执行过程中,参数会以占位符的形式出现,并按照参数的类型赋值。当表中该参数有索引的时候,只有类型对才能用到索引。例如,这里的kp在表中有索引,那么只有用#{}传入参数才可用到索引。如果用$符号,则MyBatis会做明文替换,传递给MySQL的SQL语句也没有指定正确的数据类型,就用不到kp的索引。

    1. 在HashMap中,如何使用可变对象作为key?
      参考:Java 用自定义类型作为HashMap的键
    2. 在JavaWeb开发中,你需要掌握的MySQL知识,可以参考:MySQL总结这篇文章。
    3. insertOrUpdate语句,通过Insert...values() on duplicate key update ....语句实现,这里有两点需要注意:
    • 影响行数:insert 1、update 2、和当前row的值完全相同则为0;
    • select LAST_INSERT_ID() 返回值:在insert ... on duplicate key update...语句中,insert返回刚刚插入的记录的ID;update 无意义。
    1. 通过正则表达式匹配正确的IP4地址,参考link正则表达式如下:
    ^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
    
    1. 在Spring MVC项目中,可能需要添加业务监控日志,我们这里用到Spring AOP功能。在Controller中添加AOP,可能会出现拦截方法不生效的情况,这种情况可以参考SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式);另外,也可以利用filter、mvc interceptor或者method intercetpor实现,对于需要统计方法的运行时间,使用method interceptor最合适,参考使用方法拦截器MethodInterceptor和AOP统一处理log

    2. 开发过程中的代码质量规范,利用google check style规范,在intelij idea中也有对应的check-style插件可供使用。

    3. 在开发的过程中,有时会对某个项目的代码行数感兴趣,对于git管理的代码库,可以使用如下命令统计:

    git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }'
    

    相关文章

      网友评论

      • 凌霄Phx:文章质量水平有点不行哦,相对以前:relieved:
        程序熊大: @凌霄Phx 近期小黑屋,整理得匆忙了,下回改进💪

      本文标题:Java Web技术经验总结(七)

      本文链接:https://www.haomeiwen.com/subject/yrrgdttx.html