`
wdmcygah
  • 浏览: 60778 次
社区版块
存档分类
最新评论
文章列表
  本博文为《编写高质量代码—改善Java程序的151个建议》一书的阅读笔记。该书从很多方面给予了编写高质量代码的宝贵经验。而且该书应该是那种开发经验越丰富,体会越深的书籍。在阅读过程中,从该书中收获良多, ...
  本博文为《编写高质量代码—改善Java程序的151个建议》一书的阅读笔记。该书从很多方面给予了编写高质量代码的宝贵经验。而且该书应该是那种开发经验越丰富,体会越深的书籍。在阅读过程中,从该书中收获良多,这里主要作下书籍笔记,有体会的地方加点自己的想法。受限于知识水平,部分内容还没能深刻体会,所以更多更好的内容和具体实例还需要从书中去找寻。 编码不仅仅是把代码写出来,还要求清晰地表达出编码者头脑中的逻辑,准确地传递到计算机中执行,同时也能被其它编码者轻松阅读,而要实现这些目标,则要求代码有清晰、正确的思想,即编程思想。——秦小波(书籍作者)
Mybatis作为一个非常好用的持久层框架,相关资料真的是少得可怜,所幸的是官方文档还算详细。本博文主要列举一些个人感觉比较常用的场景及相应的Mapper SQL写法,希望能够对大家有所帮助。 不少持久层框架对动态SQL的支持不足,在SQL需要动态拼接时非常苦恼,而Mybatis很好地解决了这个问题,算是框架的一大亮点。对于常见的场景,例如:批量插入/更新/删除,模糊查询,多条件查询,联表查询,都有非常好的支持。Mybatis的动态SQL生成功能实际使用的是OGNL表达式语言,理解OGNL表达式对动态SQL的使用会有很大程度的帮助。 下面直接上示例: 一、批量插入/更新/删除 批量操 ...
Cookie是Web程序中常用的一种会话跟踪技术,实际是客户端浏览器保存的一小段文本信息。Cookie在实际应用中很常见,比如很多网站登录时的“记住我”功能、电子商务网站的“购物车”功能……Session作为另一个常用的会话技术 ...
在开发Java Web程序时,前后校验逻辑应该是必不可少的一部分。其中,前台校验更多地是从用户体验的角度出发,而后台校验更多地是从数据安全的角度出发。本博文基于Spring MVC写了一个前台后台结合校验的示例,不过没有使用Spring MVC自带的校验框架。示例前台使用Jquery Validation进行校验,后台使用Hibernate Validation进行校验,所以示例所需要的校验逻辑并不依赖于Spring MVC,只要引入相应的校验包,即可在任何Java Web环境中实现校验功能。(使用Spring MVC自带校验逻辑进行校验,改天有空再写个示例) 如果Jquery Valid ...
在项目开发过程中,后台在很多场景都需要进行校验操作,比如:前台表单提交到后台,系统接口调用,数据传输等等。而且很多项目都采用MVC分层式设计,每层还有需要进行相应地校验,这样在项目较大,多人协作开发的时候,会造成大量重复校验代码,且出错率高。 针对这个问题,JCP出台一个JSR 303-Bean Validation规范,而Hibernate Validator 作为Bean Validation的参考实现,提供了JSR 303规范中所有内置constraint的实现,除此之外还有一些附加的constraint。 Hibernate Validation的使用非常简单,只用在相应的实体类 ...
不论是出于用户体验的考虑,还是出于安全角度的考虑,在网站开发过程中,涉及到表单提交时都会需要进行表单校验,而表单校验往往涉及到很多字段及规则。使用原生JS自实现一套校验框架麻烦且低效,Jquery Validation作为Jquery的一个插件,提供了非常强大而且简单易用的校验功能。 Jquery Validation官网地址 Jquery Validation下载地址 Jquery Validation核心功能我认为就分为两部分,其实校验最关心的也就这两部分:(1)每个表单字段是校验规则是怎样的?——rules(2)每个表单字段校验后如何提示?——messages更进一步,有些常用的 ...
在实际应用中,文件下载或导出报表的场景应该很常见,如Excel报表导出……如果文件较多时,用户往往希望文件能够打包进行下载,这个时候就需要对下载的文件进行压缩打包,再进行下载。针对这个场景,我写了个压缩文件打包下载的Demo,这里实现的是Excel文件的压缩下载,Excel生成用到了Apache的POI组件,压缩功能使用的JDK自带API,具体实现代码如下: 一、Controller类 /** * 压缩包下载控制器 * @author wdmcygah * */ @Controller @RequestMapping("/zip") public ...
如果你需要直接打印当前页面,那么你不用再往下看了,直接使用浏览器自带的工具栏中的“打印”即可。如果你的实际需求是页面上显示很多内容,但你只想打印指定区域的内容,进一步可能还想把本来显示在一起的内容,分成好几页进行打印,那么本文希望能够提供一个最简方案。 实现的方法其实很简单,直接使用JavaScript自带window.print()方法即可实现类似点击浏览器进行打印的效果,不过这种方式是打印当前窗口的内容(即body的整个内容)。如果只想打印指定区域的内容怎么办呢?最简单的思路是将body的内容先替换成指定区域的内容,再进行内容的还原即可。如果指定区域本就在一页内容里面,需要硬拆成好几页 ...
在实际开发过程中,会经常遇到下载附件或者导出报表的情况,有时候文件会比较多,用户更希望多个文件可以一起打包进行下载。这时就需要实现两部分功能:一部分是多个文件的打包处理,一部分是压缩文件的下载功能。 对于压缩文件的下载,可查看我的另一篇博文(SpringMVC下打包文件的下载),本文主要提供多个文件的压缩与解压的例子。样例完全基于JDK自带的IO流处理类,主要相关类为ZipInputStream和ZipOutputStream,使用JDK API已经能够满足压缩与解压的需求。我看网上有不少提到压缩中文乱码的问题,建议用ant.jar中包的ZIP处理类进行处理,我进行了相关测试:使用JDK1 ...
在项目开发过程中,我们经常会遇到需要发送邮件的场景,比如:用户验证邮箱的时候,有活动通知或者提醒通知的时候……有些时候我们可能只需要发送一些简单文本内容即可,但是大多数情况下我们更希望邮件的内容是丰富多彩,而且是“定制的”,能够灵活修改。这时候使用一个方便修改的邮件模板就显得非常必要了。 对于发送邮件,大家都知道Oracle提供了官方的JavaMail API,这个API没有包含在标准的JDK中,所以需要额外下载。JavaMail功能全而强大,但是在易用性方面还是略微差点,这方面Spring对JavaMail API的调用作了很好的封装,让开发者更多地考虑邮件的内容处理即可。至于邮件模板的 ...
 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据、下载统计数据等等场景。针对这个问题,我写了个基于SpringMVC的简单上传下载示例,其中Excel的处理使用Apache的POI组件。   主要依赖的包如下:  <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency ...

Git解惑

    博客分类:
  • Git
一、Git是什么? 很多初次接触Git的人总是把Git与Github等同起来,我刚开始也是如此。其实Git是一个分布式软件控制/配置管理软件;而Github是一个可以托管Git版本库的网站而已。越来越多的开源项目选择使用Git进行管理,然后托管在Github网站上。Git与svn、cvs都是进行版本管理的软件,不过控制方式却不尽相同。其中,cvs、svn属于集中式版本控制系统,所有开发者都需要跟统一的服务器版本库进行比对提交;而Git属于分布式版本控制系统,每个开发者都可以拥有一个自己的版本库,然后再进行合并提交。 二、Git的基本操作? 关于Git网上已经有很多基本操作的文章,由于G ...
  1、充分了解需求 需求是设计与开发的输入,因此在设计与开发之前,一定需要产品经理的需求明确,并保证双方的理解一致。在出现理解模糊时要及时地与产品进行沟通,不然很有可能做的东西偏离需求,“吃力不讨好”。 2、设计先行 在充分了解需求的基础上,要先进行前期的设计,不要急于开发。良好的设计可能大大减轻开发的工作量,同时也能保证开发的质量。 3、合理分工 既然要分工,首先得知道工作量多大,具体是什么。所以这里需要先根据需求与设计评估出系统的模块/功能点,相应地估出人天。然后根据每个团队成员的技术特长进行分工,尽
Spring2只支持iBatis2,Spring3是不支持MyBatis3的,所以MyBatis自开发了一个集成Spring框架的项目MyBatis-Spring。该项目集成Spring,可以将事务交给Spring进行管理,同时将mapper类、sqlSession注入到其它类中。   项目地址:https://github.com/myba ...
Global site tag (gtag.js) - Google Analytics