JavaEE:一个宽广的概念。

783 查看

这篇博客什么技术内容都没有,纯粹是介绍JAVAEE这个宽广的概念。

本文内容的基于的环境是JavaEE7

起因:

起因是因为看了这个java EE两年,目前北京在职,年后可以上班,下面有个人问:

hantsy:Java EE 工程师?请问用过哪些 Java EE 标准,,,比如 Servlet 3.1, JSF 2.2, EL 3, CDI 1.2, EJB 3.x, JMS 2, JTA 1.2, JPA 2.1, JCache(已经稳定,加入 Java EE 8),Bean Validation, JAX-RS 2, JSONP(JSONB 也是加入 Java EE8 中), Batch 等。

有人回复:该楼列了一大堆,其实是连面试都不会问的doc知识 。
有人反驳:人家工作两年, 你谈个球的标准。

hantsy:我没别的意思,我面试过很多人,很多人说自己会 Java EE,连 Java EE 包含哪些标准都不知道。

有人总结:问题是楼主的提法有问题, 他如果说java web工程师, 那么如果也不会有人来抬杠了. java ee包含的范围不要太广啊...

去看了一下相关的资料,发现跟当初接触javaweb一样,JavaEE的范围不能更宽。
wikipedia Java

总结

写javaweb也有一段时间了,一直以为自己写的是javaEE,连很多参考书都是写着“javaEE”,自以为是在做JEE,但是现在总结一下,才发现自己做的东西离JEE还差得远。
简单的来说,JEE是一堆定义、N个接口和他们的实现方式:

比如其中的CDI(依赖注入JSR346)就是官方的实现:tomcat完全没有CDI的支持,实现CDI的方式都是通过第三方的软件包、架构,例如spring,带有原生CDI的容器是tomcat EE、JBoss、Glassfish等。
再例如JAX-RS,可以认为是java原生的restful api的接口,但是tomcat也没有这个实现,当然restful有各种不同的方式,可以自己写filter拦截,可以用jfinal,可以用springMVC,但是毕竟也是javaEE的标准。
再者,用的比较多的JSF,tomcat似乎也没有实现,需要自己去下载jsf-impl.jar和jsf-api.jar这两个jar包。
再例如JMS,tomcat也没有实现,有第三方的实现叫做activeMQ。

JAX-RS,JMS,CDI,EJB,javaEE的概念不能更广啊。

附录:

javaee7-examples:一个项目用来演示 Java EE 7 各种新特性的示例,有超过 160 个示例程序。
netbeans:一个java IDE,自带Glassfish,对我个人来说,eclipse(jetty)无法做到的实时调试,保存完代码总要过上一段时间才会重新部署,而且有些文件没保存的话,会出错。相比起来netbeans的重新部署的速度很快,基本做到“所见即所得”。