分类: 案例

Spring配置多数据源进行数据同步

发表于3年前(Jan 20, 2015 4:59:00 PM)  阅读 4305  评论 4

分类: Java 数据库 案例

标签: 数据同步 annotation 多数据源 多事务 动态切换 AOP 反射 模型转换 AbstractRoutingDataSource PlatformTransactionManager

本文主要可以解决以下几个问题:

Spring如何配置多数据源、多事务,以及如何动态切换。

Spring AOP机制的运用,以及对同一个切面(Joint Point)多个处理方法(Advice)执行顺序的设置,即AOP的Order的设定。

自定义注解Annotation的实现以及使用。

使用Java反射机制配合Annotation实现异构模型之间的自动转换。

网站配置的一种设计实现方法

发表于3年前(Jan 7, 2015 11:22:17 AM)  阅读 816  评论 0

分类: Java 案例

标签: 网站配置 annotation

1、网站配置:

一个网站都有很多配置选项,如笔者的博客里面就有基本配置、阅读配置、评论配置等:

有了这些配置管理功能,我们在开发时就不需要硬编码,可以实现在线修改配置选项,不需要重启服务。这是一个网站很常见的做法。

2、简单实现:

一般来说,实现这个配置管理很简单,建立一个配置实体类,映射数据库中的一个表,无非就是对这个实体实现增删改查。后期如果要修改,比如增加了一个配置选项,那就修改实体类,增加属性,增加数据库字段,修改页面,可能要修改对应的合法性验证。虽然修改的地方较多,但也没那么麻烦,都是简单的体力劳动,也没什么费劲的。

3、多个配置怎么办:

如果系统里面就一两个这样的配置,采用上面的方法很快就完成了,但如果系统中有很多这样的配置,那工作量就有点大了。这时我们就会偷下懒了,就要想到继承了,看看配置是不是基本都是相似的。而且,难道我们给每一个配置建立一个对应的映射表,每个表里n多字段只有一条数据,这样好像有点浪费。

 

处理大数据量报表导出

发表于3年前(Dec 24, 2014 1:58:12 PM)  阅读 672  评论 0

分类: Java 案例

标签: poi 大数据导出

一、问题场景:

报表导出功能是很多系统常见的,java报表导出常用poi,jxl等jar包,笔者常用的是poi。使用这些开源jar包导出excel都很简单,网上随机找个例子就能用,可是一旦碰到导出的数据量很大的时候就出问题了。项目中有个报表导出功能,如果不选条件,可以将所有数据进行导出,现有数据量有20w,客户不愿分批导出,导出过程中经常报错,无法正常完成,笔者接手处理该问题。

二、问题分析:

1、查看代码,所有数据直接从数据库load进来,组成java实体,在开发库测试,开发库上只有3w多数据,就已经报内存溢出了,这是一个问题。

2、解决完这个问题后使用poi进行excel写入操作时,同样会报内存溢出,这时使用的是poi3.7,用的HSSFWorkbook。

3、excel本身有限制2003 是65536行,2007是1048576行。

三、解决问题:

1、首先所有数据load到内存中的做法肯定是不对的,内存再大总有限制,数据量一直在增长,

......

数据同步引发的一些思考

发表于3年前(Dec 24, 2014 10:39:16 AM)  阅读 479  评论 0

分类: Java 数据库 案例

标签: etl truncate 批量删除 数据同步

问题场景描述:
有Oracle数据库服务器A,有Oracle数据库服务器B,有第三方数据存储系统C,服务器A和C之间只能通过中间库B访问,现A定时产生大量数据,需要同步给C,C不只是简单的获取数据,还需做分析处理。这里没有采用第三方ETL工具,原因不赘叙,现在看如何自己编写代码完成同步过程。