-
junit 基于 spring 工程的测试基类编写
无论是SSH,SSI架构,都少不了用spring, 但一般写后台程序的人都需要自己检测功能是否正确,数据是否正确,一般不会运行web application 起来通过界面测试。都是直接通过 junit 写单元测试的, 但 通过 spring 配置的程序,需要拿到 配置的 bean 才可以。可以直接通过 ClassPathXmlApplicationContext 拿到beanFactory, 然后去获得各种bean. 这可以写一个基类,供其他测试类extend
Date: 2013-11-07 View: 2778
-
在listener 中获取 spring context 从而得到 bean 的方法.
写listener , 我的目的是系统在启动的时候,就将缓存的数据在这里放入到自己写的缓存类中去,但我需要调用 spring 已经注入的 bean ,包括各种 service 以及 dao 层。因此需要 得到这些 bean 进行处理。可以利用 spring 自己提供的 WebApplicationContextUtils 来实现, 比如有如下例子:
Date: 2013-11-06 View: 8358
-
最适合中国国情的jquery file upload 批量上传改版插件,结合spring mvc
如题所述,也许真是最适合中国开发者项目的 jquery file upload 改版的插件,这是一个利用HTML5 的文件上传的插件,用google 直接可以搜索 "jquery file upload " 可以直接到 github 的网站下载这个插件的最新版。也许你看到这个文章的时候,插件已经更新了,但不妨碍中国人如何使用这个插件,因为重要的是思路。在做项目中发现了官网的插件有如下几个问题:
Date: 2013-11-04 View: 8420
-
inputStream to Properties 与 Properties to 流
最近在做项目的时候,遇到一个问题,需要在内存中对从不同地方收集起来的 Properties 文件做处理,在处理之后,要合并成一个 单独的 Properties 并输出为 inputStream ,做后续的处理。如果单纯从 properties文件转换成 inputStream 应该是比较容易的事。在内存中处理合并properties 也比较简单,但 从Properties 对象转换成 inputStream 我硬是冤枉了两个小时。很郁闷,不过最后还是找到了方法,其重点就是 通过outputStream 作为中转来实现,参考了网上的一个 inputStream 与 outputStream 与 String 对象之间相互转换的代码,一起写在里面.
Date: 2013-10-31 View: 4166
-
javascript异步处理与Jquery的deferred对象总结
这是项目组老大整理的一些关于jquery 异步处理请求,以及使用 jquery deferred 对象的一些常见方法。虽然是项目上总结出来的。但也比较通用,分享在这里。所有的Ajax操作都采用异步处理。采用Jquery的Deffered对象来处理异步调用。因为是异步调用,所以$.Ajax函数的返回值不代表返回的结果,只是一个Deffered对象。Ajax调用完成后执行的逻辑可以写成函数作为参数传递给Deffered对象的done(), fail(), always()函数来执行。
Date: 2013-10-31 View: 3767
-
Spring @transactional annotation 事务使用详解
annotation 方式写程序越来越称谓主流了,以前用hibernate 也用 xml 一大堆配置文件。spring beans 管理也是一大堆xml 配置文件,但现在的趋势是 annotation ,这种方式写程序更方便,很少配置文件,维护起来也比较方便。这几天重新看 spring 的文档,仔细看了下 annotation 方式下事务的管理方式.
Date: 2013-10-29 View: 31693
-
spring,hibernate,ibatis in action 电子书下载
java 开发中,常用的几个框架,spring , hibernate, ibatis 这几个开源框架, 在网上找了几个免费的电子书,分享在这里,都是比较清晰的电子书。不过都是英文版,这是英文原版, 有部分是官方提供的 文档整理而成 , 有需要的,可以下载下来看看.
Date: 2013-10-28 View: 3170
-
java web应用防止sql 注入的常规方法
继续接上一篇文章,java web 应用程序,还有另一个比较常见的攻击漏洞,也就是 sql injection. 通常也就是我们所说的SQL 注入.其实解决的方法很简单1. 采用 orM2. 如果是原生的SQL 语句,记得用 PreparedStatements ,参数用 ?, 代替,然后赋值。
Date: 2013-10-27 View: 3243
-
java 防止 XSS 攻击的常用方法总结.
在前面的一篇文章中,讲到了java web应用程序防止 csrf 攻击的方法,参考这里 java网页程序采用 spring 防止 csrf 攻击. ,但这只是攻击的一种方式,还有其他方式,比如今天要记录的 XSS 攻击, XSS 攻击的专业解释,可以在网上搜索一下,参考百度百科的解释 http://baike.baidu.com/view/2161269.htm, 但在实际的应用中如何去防止这种攻击呢,下面给出几种办法.1. 自己写 filter 拦截来实现,但要注意的时,在WEB.XML 中配置 filter 的时候,请将这个 filter 放在第一位.2. 采用开源的实现 ESAPI library ,参考网址: https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API3. 可以采用spring 里面提供的工具类来实现.
Date: 2013-10-24 View: 15302
-
java网页程序采用 spring 防止 csrf 攻击.
经常开发银行的应用,在安全性方面要求比较高,在安全性保护方面,csrf 攻击是必须测试的项目之一,关于什么是 csrf 攻击,我不想多做解释,网上已经介绍够多了,可以参看 IBM Developer works 的文章 http://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/ 这篇文章介绍了 csrf 的危害和一般解决办法,在实际开发过程中,有一些参考价值。但事实上在我经历过的银行项目开发过程中,基本都会采用 spring 框架,所以完全可以不用自己开发 filter 去拦截 csrf 攻击的请求,而直接采用实现 spring 提供的 HandlerInterceptor 来实现。 从本质上来说,这也是一个 filter. 我这里就直接实现它来 防止 csrf 攻击.
Date: 2013-10-22 View: 7935
-
Django 中 如何使用 settings.py 中的常量
在用django 框架开发 python web 程序的时候 , 在模板页面经常会用到 settings.py 中设置的常量,比如MEDIA_URL, 我尝试过在模板页面用类似如下的方式代码片段, 请查看文章详情 ...但是,是没有效果的,后来只好采用了RequestContext 的方法,起始就是在 render_to_response 的时候,将settings.py 中常量,再次添加到一个 context 中去实现,这样在页面就能用另外一个名字去访问了,感觉很别扭,个人觉得肯定还有更简单的方法,只是没找到而已。下面是实现方法
Date: 2013-10-20 View: 4019
-
java 计算瑞年的方法
任何语言都有可能计算某一年是否为瑞年的方法,也就是说一年有 366 天,每隔4 年就出现一次。最基本的算法如下:代码片段, 请查看文章详情 ...
Date: 2013-10-20 View: 2735
-
java 任意两个时间差,天数,小时数,分钟数,秒数
在java 编程中,不可避免用到计算时间差。前面我写过几篇文章,关于java 时间计算的,还有timezone 转换的文章,但没有这么具体到相差到天数,小时,分钟,秒数都列出来的情况,所以这里再总结下。1. 用JDK 自带API 实现。2.利用 joda time library 来实现.
Date: 2013-10-17 View: 6452
-
Hibernate保存图片 文件 到数据库
为了在数据库中保存文件,需要在数据库中定义二进制指端blob. 有的数据库也有 image 类型也可以。在hibernate 实体类 这一边, 定义 类型为 byte[] 就可以。做一个简单的例子测试
Date: 2013-10-15 View: 3267
-
封装 sqlserver2005 以上的 hibernate 方言 Dialect
在数据库的查询中,分页是必不可少的。在很久以前用 sqlserver 2000 的时候,经常用内存分页或者存储过程分页。但内存分页效率实在很低,而且只适合数据量小的情况 。 从sqlserver 2005 以上,分页查询就好做很多,提供了一个row_number, 这个做分页比较好用。当然你仍然可以利用存储过程,写一个公用的分页存储过程。具体我就不写了,原理很简单,传入要查询的SQL 语句,得到所有数据,根据PAGE SIZE 计算ROW_NUMBER, 然后再包装一个SQL语句就可以了。但这里是用Hibernate做,所以直接实现Hibernate Dialect 方言比较好
Date: 2013-10-14 View: 3138