/ k: V$ \0 m* L! I/ M通过上面的阅读,你可以知道,你的业务代码、JDBC规范、JDBC驱动、以及数据库,它们是如何一起协作的。 0 H! T+ I# M' c3 A! H' A% B
如果你了解这些内幕,那么你再学习hibernate、iBatis等持久化框架时,就会得心应手的。 5 Z: d2 d% @" E4 T, U6 N4 B$ `% G% z8 S7 w% ~9 O$ x% a3 D
读过JDBC驱动,那么下一步一定要读读数据库了。而正好有一个强大的数据库是用Java开发的,Hsqldb。它是嵌入式数据库,比如用在桌面客户端软件里,如Mail Client。 v8 N0 p3 T! p) s @$ D1 S% a
我四年前为此写过一篇小文,就不介绍了。 + b4 s! o: e j, k! }" m# n/ b3 O/ ~- C9 D" u J* s& R: p
Java通讯及客户端软件 , l+ R3 X# a, U( s4 L/ F
我强烈推荐即时通讯软件wildfire和Spark。你可以把wildfire理解成MSN服务器,Spark理解成MSN客户端。它们是通过XMPP协议通讯的。 6 @* \, q. k! O: v" [+ a" b
我曾经在一个项目中,定制过Spark,当然也包括服务端的一些改动。所以它们的源码我都读过。 & h0 |, q J' I) }( A) G& u' Z我之所以推荐它们。是因为: ! S/ |1 p6 O+ t% F% X4 m
1、XMPP够轻量级,好理解 ! M v3 {1 P; G: B
2、学习Socket通讯实现,特别是C/S架构设计 / }6 g" [4 M- y, D9 {, Z
3、模块化设计。它们都是基于module的,你既可以了解模块化架构,还可以了解模块化的技术支撑:Java虚拟机的ClassLoader的应用场景。 8 X- T! p3 S0 }( F1 e
4、Event Driven架构。虽然GUI都是Event驱动的,但Spark的设计尤其优雅 + W r% v& S" q; e( q 4 l& X7 r$ I* f" z w: n8 j4 z这么说吧,读它们的源码,你会为做一名程序员而自豪,因为无论是他们的架构设计还是代码,都太漂亮了。 * l" F. K2 |, N& m* y6 C3 [5 u + ^( ^1 Q) u& i6 B7 w9 _Java企业级应用 # }9 j) b8 M8 h+ d6 P$ L当然了,就是Hibernate、spring这类框架。 % r L2 o, z2 ^" k在读Spring源码前,一定要先看看Rod Johnson写的那边《J2EE Design and Development》,它是Spring的设计思路。注意,不是中文版,中文版完全被糟蹋了。 5 b0 F7 [) m0 e m. b. }" [在读Hibernate源码前,一定要读读Gavin King写的那本《Hibernate in Action》,同时,应该再读读Martin Fowler写的《企业应用架构模式》,它专门谈到持久化框架的设计思路。当你觉得这两本书读透了,再去看它们源码吧。 1 c9 B9 E( @# j/ O2 I8 m! Y
而且,在读源码前,你会发现它们用到很多第三方Jar包,二三十个,你最好把那些Jar包先一个个搞明白。 , g% T8 B9 B- l- p
2 G5 p, K N" r. {9 _说到企业应用,一定会涉及到工作流。我当年读过jBPM的源码,网上有介绍jBPM内核的文章(银狐)。我感觉它的内核也就两千行,不要害怕。我曾经阅读jBPM源码的博客。 ; W. G7 p0 J/ A7 S4 o. S当然了,读工作流源码,前提是一定要对其理论模型有深入的了解,以及写过一些demo、或做过一些项目。 2 G. P b6 X* z