人生,即使在最困难的时期,也不能放弃学习, 不能与时代脱节 ---- 勉励处于困难时期的自己.
分类: Java预览模式: 普通 | 列表

spring3 restful 服务迁移到 spring4需要注意的事项

Spring4 对MVC 应用进行了一些改进, 首先测试了在restful 服务上的改进, 至少目前看来需要注意的有如下两点:
1.  从@ResponseBody 改成 @RestController
2. Synchronous 和 Asynchronous 调用,也就是同步异步调用.

查看更多...

Tags: spring

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1426

Hibernaate 调用存储过程的方法

hibernate 数据库编程中,调用存储过程有可能会碰到。虽然不是很常用,但在有些系统中确实存在,存储过程中有着复杂的逻辑,另外存储过程的效率应该相对比较好,所以如果合理使用存储过程, 存储过程还是很有生命力的, 一般来说有三种方式实现 hibernate 调用存储过程, 其实这三种方式实现hibernate 调用存储过程,并没有什么本质的不同,其实都是原生SQL 方式,只是方式不一样,具体采用那一种方式,与你自己的程序风格和习惯相关, 自己采取适合自己的方式开发.

查看更多...

Tags: Hibernaate 调用存储过程的方法

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 435
用maven 工程搭建项目,在搭建好之后,运行时却抛出了这样的错误:  Error configuring application listener of class org.springframework.web.context.ContextLoaderListener  
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener, 这说明根本没有找到我们在 web.xml 里面配置的 listener, 但maven 的pom.xml  里面已经配置相应的包,而且可以在java 工程的maven dependency jar 包里面找到, 这说明maven是没有问题的,在网上搜索了很多答案,最多的就是类似这个文章: http://www.cnblogs.com/zhouyalei/archive/2011/11/30/2268606.html 基本都是这样去解决,但是貌似对我来说不行,而且比较麻烦,需要修改 .project , .classpath 等文件。其实有更简单的办法

查看更多...

Tags: maven spring

分类:Java | 固定链接 | 评论: 18 | 引用: 0 | 查看次数: 29147

spring mvc jackson 防止XSS 注入方法

spring mvc 做应用时,如果采用接受或者返回 json 格式的数据的时候,有可能会产生 XSS 注入, 对于XSS注入的一个常用方法,就是将接受到的数据进行 escape 处理。如果数量很少的方法,可以自己单独处理,但如果很多地方用到,最好是用公用的方法,一个简单的方法就是 扩展jackson 定制自己的 方法,对所有json 格式数据进行escape 处理.

查看更多...

Tags: spring mvc

分类:Java | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 4772

Hibernate4 No Session found for current thread原因

Hibernate4 与 spring3 集成之后, 如果在取得session 的地方使用了getCurrentSession, 可能会报一个错:“No Session found for current thread”, 这个错误的原因,网上有很多解决办法, 但具体原因的分析,却没有多少, 这里转载一个原理分析

查看更多...

Tags: hibernate

分类:Java | 固定链接 | 评论: 9 | 引用: 0 | 查看次数: 51434
在Hibernate内部使用slf4j 来处理日志,所以在配置Hibernate日志的时候,slf4j 是必不可少的jar包, 严格说了slf4j 只是一个日志接口,可以由很多其它三方的 jar 来实现,比如用log4j实现等, 对于日志的配置应该都知道怎么配了,但是经常在日志中看到类似如下的语句:
insert into stock (STOCK_CODE, STOCK_NAME) values (?, ?) , 里面全部是参数化的“?” 号, 然后这些值并没有打印出来,对于查看日志来说,还是有些不方便,怎么在日志中打印出这些参数值呢,是可以通过log4j 的配置做到的。

查看更多...

Tags: hibernate log4j

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1180
开发应用程序的过程中,经常会对一些比较重要的数据修改都需要写日志。在实际工作的工程中,这些数据都是存在表中的, 一个常见的做法是用触发器,在增删改的时候,用触发器将数据写入到另一张表中去,但个人不推荐这么做,原因如下:
1. 如果有多个表,得写很多触发器。
2. 触发器与数据库特性关联太紧,不同的数据库,虽然思路一样,但语法却不太一样。
对数据库表操作的日志记录,完全可以利用Hibernate的Interceptor特性来实现,也就是拦截器。下面用一个具体的例子来说明如何使用Hibernate的Interceptor。

查看更多...

Tags: hibernate Interceptor

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 6092

Hiberante4 原生SQL查询 例子

用hibernate4, 完全用ORM 做项目,原则上可以,其实有时候没有必要, 我见过有的项目为了取一个表的一条数据,而且只有一个字段的查询,居然也用hibernate 去做,更绝的是,这个查询里面还配置了 one to many 等关联,而且FetchType也不是lazy, 有必要这么做吗?我不是完全否决hibernate ,但用查询的时候,要注意什么时候该用Hibernate orM 去查,什么时候该自己去写 native sql 去查。

查看更多...

Tags: hibernate

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1191

Hibernate 使用 C3P0 连接池

连接池对于提高性能来说是个不错的选择, 特别是对于频繁创建连接关闭连接的程序来说,尤其如此,因为减少了没一次连接都需要创建连接和销毁连接的时间。hibernate 推荐使用 C3P0 连接池.

查看更多...

Tags: hibernate c3p0

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 814

java 自定义注解 (custom annotation)

最近几年写程序,越来越流行注解方式,比如 spring,hibernate 都从原来的xml配置方式转向了注解方式,原因在于写注解很方便,减少了XML 文件的配置,如果全部用XML 配置,一个大型的应用,怎么也得有成百上千的XML文件。那么怎么自定义类似于spring 的注解方式呢。

查看更多...

Tags: annotation

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 610

java 获取HttpRequest Header 的几种方法

在开发应用程序的过程中,如果有多个应用,通常会通过一个portal 门户来集成,这个portal  是所有应用程序的入口,用户一旦在portal 登录之后,进入另外一个系统,就需要类似的单点登录(SSO). 进入各个子系统的时候,就不需要再次登录, 当然类似的功能,你可以通过专业的单点登录软件来实现,也可以自己写数据库token 等方式来实现。其实还有一个比较简单的方法,就是通过 portal 封装已经登录过的用户的消息,写到http header 之中,然后把请求forward 到各个子系统中去,而各子系统从 http header 中获取用户名,作为是否登录过的校验或者合法的校验。总结了几种处理http Header 的方法

查看更多...

Tags: http header

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3273
最近在做一个程序的性能测试分析,UAT 压力测试感觉比较慢,但又没有系统的测试真正的瓶颈在什么地方,客户也不愿意花时间去专业的测试,就用chrome浏览器,看timeline 测试,很笨吧,没办法,客户就这么干,期间也用过jmeter测试,但也只是说结果不理想,也没给出具体的参数。一个真正好的完整的测试,应该包括从发起请求开始,DNS 解析,路由寻址时间,http server 响应时间,应用程序处理时间,包括数据库执行时间,以及IO 分析,当然网络带宽也要分析。由于我们是负责程序部分的,所以程序执行时间部分的操作日志由我们自己来负责分析,用到spring mvc写的程序,所以理所当然的想到用spring inteceptor 来实现,具体看每个controller 的执行时间是多少,这中间包括了数据库部分。

查看更多...

Tags: spring mvc

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3176
一对一映射是最基本的对象之间的关系之一,严格的说来一对一有一下几种对应关系:
1, 一对一 单向关联(分主键,外键两种)
2, 一对一 双向关联(主键,外键两种)
3, 还可以采用中间表方式来实现,但一般不使用,先直接看看双向主键关联的测试.

查看更多...

Tags: hibernate

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 518
前面的例子中记录了利用传统的hibernate XML 隐射方式配置, 但这种处理方式在近几年已经不流行了,因为要维护太多的XML 配置文件,而且修改之后还得重启应用服务器。近年流行的是用注解方式写程序, 直观,对程序员来说更容易维护,代码更少。所以在前一个例子的基础上,改写成hibernate 注解方式.

查看更多...

Tags: hibernate annotation

分类:Java | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 3761

Hibernate4 mysql 采用XML 配置方式入门例子

温故而知新, 既然hibernate4 已经出来了,就把以前hibernate3 的例子重新修改一下,再跑一遍,检验下有什么新的变化, 以前没有记录笔记的习惯,现在记录下来.

查看更多...

Tags: hibernate

分类:Java | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1865