我已经使用Java SE两年了,对Java的基础知识还算熟悉。我想转向Java EE API并基于此开发一些东西。我有两个问题:
EE API是否包含所有SE的类?也就是说,任何在SE中开发的内容都可以使用EE API进行开发吗?
有人能指点我开发一个Java EE应用程序的方向或提供建议,例如Web服务或其他内容。理想情况下,这个示例应用程序可以在我的本地计算机上进行测试,并且值得放在我的作品集中,以备将来面试Java开发人员时展示。
我已经使用Java SE两年了,对Java的基础知识还算熟悉。我想转向Java EE API并基于此开发一些东西。我有两个问题:
EE API是否包含所有SE的类?也就是说,任何在SE中开发的内容都可以使用EE API进行开发吗?
有人能指点我开发一个Java EE应用程序的方向或提供建议,例如Web服务或其他内容。理想情况下,这个示例应用程序可以在我的本地计算机上进行测试,并且值得放在我的作品集中,以备将来面试Java开发人员时展示。
在Java EE 5教程中有几个Java EE示例应用程序。请参见案例研究部分。此外,请注意Java EE教程已更新至Java 6,但我没有看到案例研究部分,我认为这将是最适用于您的问题的部分。
就Java EE API包含Java SE API的所有类而言,我不知道Java EE有什么遗漏。
EE是SE的超集,但大部分区别在于你希望如何部署。
SE倾向于部署为在一台机器上运行的单个应用程序。
EE是添加到SE的一组工具和API,允许在各种客户端/服务器配置(尤其是Web)中进行部署。
在使用EE的各个部分时有一些限制。例如,在编写EJB时,不应访问文件,因为不能保证有文件系统可用(我认为许多容器实际上并不介意...但这是另外一回事...),也不应启动线程,因为该部分应由容器处理(如果您这样做,可能会遇到意外结果)。
随着时间的推移,EE和标准版似乎越来越接近。JDBC是EE API,但它始终与标准版一起提供。今天,实体bean和JPA API也可以在没有完整EE堆栈的情况下使用,您可以在标准JVM或Web容器(如Tomcat)中运行它,但需要像Hibernate或OpenJPA这样的实现以及数据库(例如JDK中嵌入的数据库或任何其他数据库)。但是,您将错过ejb容器的自动事务处理,但是根据应用程序,您可能同样需要控制。