摘要:
转自http://blog.grogscave.net/2009/01/rollback-db-changes-in-unit-tests-with.htmlRollback DB Changes in Unit Tests with SpringObservation 1: Applications are written human beings, which tend to make mistakes. It's a good idea to have some tools in place to help catch those mistakes early by valida 阅读全文
摘要:
Hibernate管理的对象通常都有hbm配置文件或注解。有一些项目需要定义一些DTO对象,比如为了组装报表数据。对于这类不受hibernate管理的对象。在hibernate使用native sql的时候,可以自定义一些transformer来实现查询结果集到List<T>的自动映射,而不必再人工的去做这个转换。下面是在泛型DAO里面定义的一个泛型方法。注意,这个方法的泛型是与泛型DAO类定义的泛型不同。View Code @SuppressWarnings("unchecked") protected <T1> List<T1> ge 阅读全文
摘要:
每次装的时候,都忘记怎么处理,转一个解决办法http://hi.baidu.com/hwp0710/blog/item/e3142aa41b223be59052ee16.htmlEclipse is running in a JRE, but a JDK is required关键字: eclipse is running in a jre, but a jdk is required安装Maven之后提示:eclipse is running in a jre, but a jdk is required控制台出现:Java代码 1. Eclipse is running in a JRE, 阅读全文
摘要:
转自http://www.penglixun.com/tech/database/mysql_virtual_function_index.html对于带有列的函数计算的SQL,MySQL是无法使用索引的,MySQL并没有Oracle中的函数索引,例如:在Oracle中,我们可以建里组合函数索引:但是在MySQL中,没有提供函数索引,怎么办?就此罢休?存在这样的需求,就得去解决,遂想到使用冗余+触发器来虚拟函数索引。首先,利用新列来存储函数计算的结果,增加col_1_f1,col_2_f2两个列分别存储col_1/col_2的函数计算结果,然后写2个触发器,分别处理INSERT和UPDATE的 阅读全文
摘要:
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知(异步的特点就是通知)。而阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函 阅读全文
摘要:
使用Terracotta的人很关心它如何收费,但是官网并没有明确如何收费。只是讲划分了开源,ES,FX三大类。Of all of Terracotta's commercial products, the Enterprise Suite provides the ultimate flexibility. It is designed for customers who have the need to solve multiple different problems within their applications. As such it includes the core Terra 阅读全文
摘要:
乐观锁:乐观锁示例http://xmuzyq.javaeye.com/blog/295639方式1.JDBC通过下面的语句:Select a.version....from Account as a where (where condition..)Update Account set version = version+1.....(another field) where version =?...(another contidition)方式2.HIBERNATE:public class Account{ Long id ; ....... @Version //也可以采用XML文件进 阅读全文
摘要:
Java 消息服务 (JMS)SOA与异步消息传送模型都适合于系统集成:异步消息传送模型非常适于完成集成复杂系统的任务;对于此类系统,在执行操作的过程中让一个组件为另一个组件提供支持既不切实际,也不值得这样做。尽管异步消息传送放弃了同步系统所具有的某些控制功能,但大大提高了组件间相互作用的灵活性。它还增强了系统的稳定性,因为一个组件的故障并不会导致整个系统瘫痪。 SOA或者WS是主动请求,消息的接... 阅读全文
摘要:
Timer与ScheduledThreadPoolExecutor的比较:1.Timer对调度的支持是基于绝对时间的,因此任务对系统时间的改变是敏感的;而ScheduledThreadPoolExecutor支持相对时间。2.Timer使用单线程方式来执行所有的TimerTask,如果某个TimerTask很耗时则会影响到其他TimerTask的执行;而ScheduledThreadPoolExecutor则可以构造一个固定大小的线程池来执行任务。3.Timer 不会捕获由TimerTask抛出的未检查异常,故当有异常抛出时,Timer会终止,导致未执行完的TimerTask不再执行,新的 T 阅读全文
摘要:
Spring事务传播特性总结:1.只要定义为spring的bean就可以对里面的方法使用@Transactional注解。 2.Spring的事务传播是Spring特有的。不是对底层jdbc的代理。3.使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在[方法调用之前决定是否开启一个事务],并在[方法执行之后]决定事务提交或回滚事务。 4.Spring支持的P... 阅读全文