分类:
Java
数据库
案例
标签:
数据同步
annotation
多数据源
多事务
动态切换
AOP
反射
模型转换
AbstractRoutingDataSource
PlatformTransactionManager
本文主要可以解决以下几个问题:
Spring如何配置多数据源、多事务,以及如何动态切换。
Spring AOP机制的运用,以及对同一个切面(Joint Point)多个处理方法(Advice)执行顺序的设置,即AOP的Order的设定。
自定义注解Annotation的实现以及使用。
使用Java反射机制配合Annotation实现异构模型之间的自动转换。
分类:
Java
案例
标签:
网站配置
annotation
1、网站配置:
一个网站都有很多配置选项,如笔者的博客里面就有基本配置、阅读配置、评论配置等:
有了这些配置管理功能,我们在开发时就不需要硬编码,可以实现在线修改配置选项,不需要重启服务。这是一个网站很常见的做法。
2、简单实现:
一般来说,实现这个配置管理很简单,建立一个配置实体类,映射数据库中的一个表,无非就是对这个实体实现增删改查。后期如果要修改,比如增加了一个配置选项,那就修改实体类,增加属性,增加数据库字段,修改页面,可能要修改对应的合法性验证。虽然修改的地方较多,但也没那么麻烦,都是简单的体力劳动,也没什么费劲的。
3、多个配置怎么办:
如果系统里面就一两个这样的配置,采用上面的方法很快就完成了,但如果系统中有很多这样的配置,那工作量就有点大了。这时我们就会偷下懒了,就要想到继承了,看看配置是不是基本都是相似的。而且,难道我们给每一个配置建立一个对应的映射表,每个表里n多字段只有一条数据,这样好像有点浪费。
分类:
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到内存中的做法肯定是不对的,内存再大总有限制,数据量一直在增长,
......
分类:
Java
数据库
案例
标签:
etl
truncate
批量删除
数据同步
问题场景描述:
有Oracle数据库服务器A,有Oracle数据库服务器B,有第三方数据存储系统C,服务器A和C之间只能通过中间库B访问,现A定时产生大量数据,需要同步给C,C不只是简单的获取数据,还需做分析处理。这里没有采用第三方ETL工具,原因不赘叙,现在看如何自己编写代码完成同步过程。