[size=medium] 这几年,受到Struts、Hibernate、Spring组合的影响。在Java EE的学习过程中,不少初学者没有深入的学习过Java EE 的服务API,如Java Mail、JMS、JNDI、JTA、JAAS等。对于EJB更是不了解,这不怪初学者,那是因为业内对EJB的批评所致。EJB模型,对于开发、测试来说,是显得过于复杂,臃肿。但是别忘记了EJB的定位,当时EJB的目标是复杂的企业级开发,相对于CORBA模型,简化了许多。而业内复杂的企业级应用并不是特别的多,许多软件开发组织面对的是中小型应用。但是EJB提出的组件模型,尤其是容器为组件代劳诸多非业务服务的思想还是非常优秀的,特别是把这些容器服务标准化之后。为了得到EJB容器提供的服务,不得不把EJB抬出来。EJB自身在满足中小型应用的需求的过程中走得很慢,加之EJB是JCP标准,JCP标准不仅仅是技术,还牵涉到政治,所以缓慢也在所难免。但是不进步就意味着死亡,在SSH组合冲击Java EE标准多年之后,EJB也就不的不加快进步步伐。在EJB3规范当中,引入了很多开源框架的思想,目地就是简化开发的复杂度。尤其是对Hibernate、Spring IoC及AOP的吸收之后,现在Java EE不管是面对高端企业应用还是中小应用都游刃有余。
那么采用什么步骤来学习Java EE呢?我给大家的建议是:分三大步走。
第一步: 认真扎实学习Java 基础。这里就不细说了,如果你是Java初学者,现在市面上有很多优秀的Java入门书籍。不过要强调“扎实”,停留在觉得会了是远远不够的。举个例子equals和hashCode两个方法怎么实现,有什么要求?
第二步:学习Java EE服务API,就是上面提到的,都是必修的。这些API的使用并没有限定死在Web或者EJB容器中,可以应用于桌面程序中,但是服务的提高则需要容器(有时也称之为中间件)。比方说,如何使用JTA来编码控制事务?
第三步:认真学习Java EE服务器端组件,包括JSP、Servlet、JSF、EJB还有WebService。而且要基于这些组件(没有框架的帮助)开发项目认真体会组件与容器的关系,组件与组件之间的交互。
经过此三个步骤的学习,那么对Java EE 就有比较深刻的理解,知识的掌握也比较全面。如果要加上第四步的话,那就是根据实际项目需要,学习对应的框架技术,如果你所在项目或产品需要基于SSH研发,那么你就必须学习SSH了。如果项目在用更多的Java EE标准技术(Spring离标准越来越远),比如使用JSF和EJB3架构,那么就可以很好的考虑Seam框架的使用。不过这个时候你在学习框架,绝对不会是盲目的学习,也不会盲目的评价一项技术。而是非常理智的对待,对于某项目,哪项技术,哪个框架是较好的。
顺便再提一下JPA,风靡已久的Hibernate、TopLink 等ORM框架,如今可以采用统一的API--JPA来进行操作,这就像我们可以用JDBC操作不同数据库产品一样,JPA可以用不同的ORM框架实现来完成持久化任务。所以我个人认为,初学者先掌握JPA的使用,然后根据需要,对某一ORM框架进行深入学习。比如Hibernate,在持久化方面往往比JPA走的快,新概念的引入要比JPA快的多。可以这么认为,JPA是标准化了的成熟稳定技术,Hibernate是诸多新思想的实验场所,当然在Hibernate的Stable版本里面,也是相当稳定的。总之,根据你的需要。不是盲从,否则什么都会,什么都不精。[/size]
那么采用什么步骤来学习Java EE呢?我给大家的建议是:分三大步走。
第一步: 认真扎实学习Java 基础。这里就不细说了,如果你是Java初学者,现在市面上有很多优秀的Java入门书籍。不过要强调“扎实”,停留在觉得会了是远远不够的。举个例子equals和hashCode两个方法怎么实现,有什么要求?
第二步:学习Java EE服务API,就是上面提到的,都是必修的。这些API的使用并没有限定死在Web或者EJB容器中,可以应用于桌面程序中,但是服务的提高则需要容器(有时也称之为中间件)。比方说,如何使用JTA来编码控制事务?
第三步:认真学习Java EE服务器端组件,包括JSP、Servlet、JSF、EJB还有WebService。而且要基于这些组件(没有框架的帮助)开发项目认真体会组件与容器的关系,组件与组件之间的交互。
经过此三个步骤的学习,那么对Java EE 就有比较深刻的理解,知识的掌握也比较全面。如果要加上第四步的话,那就是根据实际项目需要,学习对应的框架技术,如果你所在项目或产品需要基于SSH研发,那么你就必须学习SSH了。如果项目在用更多的Java EE标准技术(Spring离标准越来越远),比如使用JSF和EJB3架构,那么就可以很好的考虑Seam框架的使用。不过这个时候你在学习框架,绝对不会是盲目的学习,也不会盲目的评价一项技术。而是非常理智的对待,对于某项目,哪项技术,哪个框架是较好的。
顺便再提一下JPA,风靡已久的Hibernate、TopLink 等ORM框架,如今可以采用统一的API--JPA来进行操作,这就像我们可以用JDBC操作不同数据库产品一样,JPA可以用不同的ORM框架实现来完成持久化任务。所以我个人认为,初学者先掌握JPA的使用,然后根据需要,对某一ORM框架进行深入学习。比如Hibernate,在持久化方面往往比JPA走的快,新概念的引入要比JPA快的多。可以这么认为,JPA是标准化了的成熟稳定技术,Hibernate是诸多新思想的实验场所,当然在Hibernate的Stable版本里面,也是相当稳定的。总之,根据你的需要。不是盲从,否则什么都会,什么都不精。[/size]