自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

spring3.0使用annotation完全代替XML(三)

很久之前写过两篇博客:[url=http://septem.iteye.com/blog/740301]spring3.0使用annotation完全代替XML[/url][url=http://septem.iteye.com/blog/753593]spring3.0使用annotation完全代替XML(续)[/url]用java config来代替XML,当时还遗留下一些问题:...

2011-07-06 21:31:34 241

get started

//java_md.c[code="c"]/* Load the Java VM DLL */ if ((handle = LoadLibrary(jvmpath)) == 0) { ReportErrorMessage2("Error loading: %s", (char *)jvmpath, JNI_TRUE); return JNI_F...

2011-06-05 22:36:16 140

编译openjdk6

晚上试了下手工编译openjdk6。从[url]http://download.java.net/openjdk/jdk6/[/url]下载源码解压到openjdk6。我编译用的OS是ubuntu11.04,参考源代码根目录下的README-builds.html中Ubuntu 9.04的说明,首先安装openjdk-6:[code="shell"]sudo apt-get install...

2011-06-03 21:53:02 333

python gil

对于纯python代码,即使开启多个线程也无法并行执行,因为GIL会将它们串行化,但这并不意味着多线程在python中无用武之地:[list][*]一个I/O密集型的线程因等待而sleep时,会释放GIL,另一个线程这时可以接手[*]可以在C扩展中开启多个线程,不受GIL的限制,比如ctypes[*]对于多用户的程序或者需要responsive interface的GUI程序,多线...

2011-04-14 09:52:55 108

spring3.0使用annotation完全代替XML(续)

[url=http://www.iteye.com/topic/740301]上一篇文章[/url]还有些话没说完,没想到一拖就是2周,所以干脆另开一篇吧。从回帖的反应来看,大多数人还是不赞成完全代替XML的,这点倒是在意料之中。我个人还是倾向于用代码来取代XML的Bean定义,当然这更多的是关乎个人偏好,不代表与我观点不同的人就是错的。先来说说代码相对于XML的优点吧: ...

2010-09-02 15:22:20 96

spring3.0使用annotation完全代替XML

@Service与@Component有什么不同?那天被问到这个问题,一时之间却想不起来,就利用这篇文章来纪录spring3.0中常用的annotation。从spring2.5开始,annotation结合BeanPostProcessor成了扩展Spring IoC容器的常用方法。Spring2.5增加了对JSR-250中@Resource, @PostConstruct, @PreD...

2010-08-18 16:30:17 124

java 函数式编程

首先得承认这篇文章有点标题党的味道,哈哈,到java6为止,java是不支持函数式编程的。前几天在使用apache commons collections的时候偶然发现CollectionUtils.exist方法,该方法用于判断集合中是否存在满足某个条件的元素,具体使用如下:[code="java"]@Test public void test_functional_progr...

2010-08-15 11:38:41 169

html cheat sheet

最基本的HTML,在使用的时候却经常忘记,在网上找到了一份小抄,纪录在这里 [code="html"]HTML Basic DocumentTitle of document goes hereVisible text goes here...Heading ElementsLargest Heading . . . ....

2010-08-12 03:02:00 148

SQL语言艺术(十二)明察秋毫:监控性能

这章讨论通过收集必要的监控数据来获取数据库运行细节,为性能优化做指导[b][size=medium]数据库很慢,通常由5种原因引起:[/size][/b][b]非数据库问题,网络不稳,或主机因某种原因超过负荷[/b][b]整体性能突然下降[/b],有两种情况要考虑,可能是性能真的降低,通常是因为软件升级或硬件配置修改,也可能是突然涌入的查询。第二种情况是开发或设计问题,比如...

2010-04-12 16:06:36 82

SQL语言艺术(十一)精于计谋:挽救响应时间

这章讨论在表设计,程序架构甚至需求都不合理的前提下对复杂SQL的优化数据库的性能依赖于合理的数据库设计,其次依赖于清晰的策略和良好的程序设计。但现实情况往往是发现性能问题后才会进行调优,我们不可避免会遇到糟糕的设计和效率级差的程序...

2010-04-12 15:14:34 76

SQL语言艺术(十)集中兵力:应付大数据量

本章讨论数据量增加时面对的特殊挑战,包括如何高效地搜索庞大的表,如何避免数据量稍有增长就可能出现的性能下降在达到目标数据量之前,第一次严重的性能问题通常会出现。当数据量较少时,从最终用户的角度看不出糟糕的查询和糟糕的算法的影响。硬件本身的处理能力会隐藏巨大错误,完整扫描几十万条记录也不到一秒时间,我们可能严重地滥用硬件能力来弥补程序的错误,直到数据量变得相当可观时,真正的错误才被发现...

2010-04-06 14:58:51 84

SQL语言艺术(九)多条战线:处理并发

这章讨论如何应对大量并发用户的情况一个测试时很高效的查询可能在大并发情况下执行地很慢,而且当大量语句并发执行,如果SQL语句提交的速度比服务速度要快时,系统性能就会出现严重问题,所有查询都会受到影响,原先较快的查询也会变慢负载增加未必是造成性能问题的原因,它只不过使性能问题暴露出来了而已。此时,建议改善程序,而不是升级硬件修改操作本质上比查询代价更高,不仅牵涉取得数据,还涉...

2010-04-01 15:05:48 89

SQL语言艺术(八)认识困难:处理困难

本章讨论对SQL而言实际中经常遇到的困难与相应的解决策略[b][size=medium]看似高效的查询条件[/size][/b]有些选择条件乍一看很高效,但需要稍加修改才能发挥潜力。遇到基于键值的一部分比较等特殊情况,比如信用卡前置码比较,可使用范围条件来表达,并尽量使用下限和上限值[code="sql"]select count(*) from credit_car...

2010-04-01 10:01:47 96

SQL语言艺术(七)变换战术:处理层次结构

这章讨论树状结构(hierarchy)与层次数据库(hierarchical database)

2010-04-01 09:15:05 166

SQL语言艺术(六)锦囊妙计:认识经典SQL模式

本章讨论存取经过适当规范化的数据时,遇到的9种最经典的情况[b][size=medium]小结果集,源表较少,查询条件直接针对源表[/size][/b]对于典型的OLTP应用,多为返回小结果集的查询。如果过滤条件直接针对源表,我们必须保证这些过滤条件高效,对于重要的字段,考虑加上索引。如果涉及连接多表的情况,需要优化连接顺序,尽快过滤不符合条件的记录。如果统计数据足够精确地反映了表...

2010-03-24 14:16:03 102

linux_tips

mount iso :[code="shell"]sudo mount -o loop /your_path/image.iso /dir[/code]broadcom STA wireless driver in ubuntu9.10 :[code="shell"]ubuntu9.10.iso/pool/restricted/b/bcmwl/bcmwl-kernel-source...

2010-03-23 20:33:24 61

SQL语言艺术(五)了如指掌:理解物理实现

本章探讨表中数据不同的存储方式,以及特殊的物理实现对性能的影响尽管数据库的物理结构和SQL没有直接的关系,但如何使用SQL却受到这些底层结构的影响在优化数据的物理布局常碰到两个冲突的目标,一个目标是尽量以紧凑的方式存储数据,这有助于查询尽快找到所有数据。另一个目标是尽量将数据分散存储,以便多个线程可以并发写入,不会造成资源争用而互相妨碍[b][size=medium]索引[...

2010-03-22 16:53:16 122

SQL语言艺术(四)机动灵活:思考SQL语句

这章深入探讨SQL的双重特性,SQL与数据库引擎的关系以及对优化器的影响关系数据库的出现,要归功于[url=http://en.wikipedia.org/wiki/Edgar_F._Codd]E.F. Codd[/url]的关系理论开创性研究成果。Codd的研究成果为数据库学科提供了坚实的数学基础,简单地讲,关系理论论证了可以通过一组关系运算符来查找满足某些条件的数据,这些关系运算符支持...

2010-03-18 15:30:12 109

java日志框架

最近在应用中第一次接触到JUL(java.util.logging),顺便对自己使用过的日志框架做个简单的总结Java里的日志框架很多,[url=http://www.open-open.com/29.htm]open-open[/url]上面就记载了一大堆,比较常用的有Log4j, Jakarta Commons Logging (JCL), JUL, SLF4J, Logback等,主...

2010-03-16 14:44:55 80

SQL语言艺术(三)战术部署:建立索引

这章讲解为关键数据提供最高效访问路径的基本策略:建立索引[size=medium][b]打破索引的神话[/b][/size]数据库表的访问突然变慢了?加索引吧。我们听过太多类似的索引能提高访问速度的话了,索引当然不是包治百病的灵丹妙药,先来看看索引带来的问题吧[size=small][b]1.索引是一种尽快访问特定数据的技术,但无法对所有数据实现快速存取[/b][/size...

2010-03-09 11:19:47 81

原创 SQL语言艺术(二)发动战争:高效访问数据库

这一章描述了高效访问数据库的基本原则,在战略大局上把握高性能的关键因素[size=medium][b]查询识别[/b][/size]程序设计上应该考虑查询识别,即根据SQL讯速定位到调用该SQL的应用程序代码,有助于定位性能问题[size=medium][b]减少于数据库交互的次数[/b][/size]使用连接池,避免反复建立数据库连接。连接建立后,尽量批量提交SQ...

2010-03-07 17:36:47 100

原创 SQL语言艺术(一)制定计划:为性能而设计

第一章强调良好的模型和合理的数据库设计的重要性sql的背后有着关系模型的数学理论做为基础,以前一直以为关系模型指的是一个表通过外键与其它表关联起来,实际却不是这样。关系模型不是因为不同表之间建立了关系,而是因为表内不同字段之间存在关系。几个值就处于表的同一行,它们之间就存在关系。关系理论的关键原理是:关系不包含重复数据,且记录之间没有顺序规范化是关系理论很重要的一部分,它的原理是按...

2010-03-06 17:45:21 89

原创 Hibernate Session持久化方法实战

Hibernate Session中有一系列的持久化方法比如:[b]save, update, saveOrUpdate, persist, merge, replicate[/b]等等,经常有人问起它们之间的细微差别,而Hibernate的官方文档并没有进行详细的说明,因此以几个测试用例验证它们的不同之外。文中所使用的持久化类以及配置请参考之前写的[url=http://septem.iteye...

2010-03-05 16:00:17 131

原创 SQL语言艺术(前言)

IT行业发展的过程中,新技术层出不穷,今天数据处理依然是系统的核心。与以往不同的是,需要处理的数据量程指数级别增长,甚至超过的硬件的增长速度,所以仅仅做到正确处理还不够,必须足够的快。对于数据库的性能问题,开发人员的一惯做法是先写出正确的程序,一旦出现问题,再由DBA来解决,这种做法未能从源头上解决性能问题。首先关注性能问题的应该是开发者,但开发者不一定非常熟悉硬件、DBMS以及各种数据库...

2010-03-05 09:59:28 93

原创 Rod Johnson Discusses Spring 3.0

[url]http://www.infoq.com/interviews/rod_johnson_spring30[/url]In this interview, Rod Johnson talks to infoq about spring3.0, the new release of spring frameworkThe role of spring is to reduce...

2010-02-25 10:17:53 83

Logging Best Practices

像日志的这样的小细节,在开发过程中常常被忽略。除了区分级别外,日志的输出内容通常处理地很随意。而实际上日志在监控系统行为,排错,性能优化,安全审计等方面扮演着重要的角色。总体上说一份良好的日志应该符合一个特性:greppable。grep是unix/linux系统上一个很强大的工具,它能够从文件中找出匹配某个正则表达式的所有行。也就是说良好的日志文件应该能够让日志分析工具在庞大的日志数据里...

2010-01-22 13:13:39 117

原创 hibernate二级缓存实战

通过这篇文章纪录hibernate二级缓存的一些使用经历,利用几个test case,从代码角度说明二级缓存在使用过程中一些需要注意的问题使用到的Model类有两个,Author, Book, 两者之间为一对多的关系[code="java"]@Entity@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)public cl...

2010-01-19 22:03:01 159

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除