转自:http://blog.sina.com.cn/s/blog_4779b7f50100vozd.html
不要上来就学Struts/WebWork/Spring/Hibernate/iBATIS等等框架,先了解一下下面一些技术,对于学习框架来说是十分重要的。
一是Java的反射机制和自省机制。大部分框架都用到这两种机制,因为它们都要实现通过配置文件自动完成类的识别和加载,所以必须要使用反射和自省。尤其是自省机制,对于大家了解JSP中的一些知识也是很有帮助的。比如,如果在EL中使用
${user.name}
那么,user这个对象中如果没有name这个属性行不行?
还有,是不是Java私有的成员就一定不能访问?
二是设计模式。GOF的23种模式很重要,这已经不用再多说了。每一种框架都用到了数种设计模式,如果你不懂设计模式,它们的源代码很难看懂。比如,JUnit中就用到好多种设计模式,毕竟是Gamma做的。包括Composite、Command、Decorator等等。
三是代理机制。代理对于实现一些附加功能非常有帮助,在Hibernate中大量地使用到了代理机制。代理机制有两种,一是Java内置的Proxy,二是CGLIB框架提供的代理。倒不用全懂,但至少得知道代理是个什么意思。要不即使你会用了,也不会理解它们是如何实现的。
四是XML。一定要会写,对于他的解析,能够了解最好了。两种方法,DOM和SAX;两种框架dom4j、digister等等
一是Java的反射机制和自省机制。大部分框架都用到这两种机制,因为它们都要实现通过配置文件自动完成类的识别和加载,所以必须要使用反射和自省。尤其是自省机制,对于大家了解JSP中的一些知识也是很有帮助的。比如,如果在EL中使用
${user.name}
那么,user这个对象中如果没有name这个属性行不行?
还有,是不是Java私有的成员就一定不能访问?
二是设计模式。GOF的23种模式很重要,这已经不用再多说了。每一种框架都用到了数种设计模式,如果你不懂设计模式,它们的源代码很难看懂。比如,JUnit中就用到好多种设计模式,毕竟是Gamma做的。包括Composite、Command、Decorator等等。
三是代理机制。代理对于实现一些附加功能非常有帮助,在Hibernate中大量地使用到了代理机制。代理机制有两种,一是Java内置的Proxy,二是CGLIB框架提供的代理。倒不用全懂,但至少得知道代理是个什么意思。要不即使你会用了,也不会理解它们是如何实现的。
四是XML。一定要会写,对于他的解析,能够了解最好了。两种方法,DOM和SAX;两种框架dom4j、digister等等
我觉得最重要的是基础知识一定要好.我推荐看java编程思想这本书,很多公司笔试的java方面的题目出自这本书.另外JSP,SERVLET,JDBC一定要有所了解,这个能说明你在大学的时候实习过,做过一些小项目的.HIBERNATE,STRUTS,SPRING这些东西我不推荐你去学习,我觉得你应该学习如何处理异常,学会用JDBC访问数据库,学会如何释放资源,如何控制数据库事务,学会如何写自定义标签,这样能够显著的提高你的编程水平.
工作一年的后我觉得应该回过去看看大学的数据结构,算法,操作系统,然后应该对面象对象要有更深刻的理解,设计模式也应该慢慢开始涉及到(JAVA变编程思想这本书建议多看几次).我不建议工作一年就开始换工作,因为找工作要花时间,新工作就要适应新的框架和新的业务,这样你就会乱费很多时间的.我还是不建议你去看HIBERNATE,STRUTS,SPRING这样的东西,虽然你工作中可能要用到它.对于英语我觉得应该早做准备,强迫自己看一些英文方面的书籍,提高自己的口语水平,另外我还要强调一点,适当的参加培训是很有必要的,上海有很多的外语培训机构(主要是培训商务交流),效果很不错的,不过也很贵的,所以去前一定要计划好,不要象大学那样交了钱不去上课或者不认真听课,那样就最好先不要去.
工作两年后,如果你算法,数据结构,设计模式等等有比较深的了解的时候 我觉得HIBERNATE,STRUTS,SPRING的实现方法你应该能够很快理解.
建议可以读的开源项目:
国外的可以看:appfuse
国内的可以看:SpringSide
看SUN公司的宠物店源代码
还有JLIVE