参加完JavaOne 2013开发者大会,把听的东西总结一下,基本上是介绍Java的最新发展情况,和对未来的展望。
现在全球有9 million 的Java开发人员,Java语言除了在传统的Enterprise上发挥出色以外,在富客户端JavaFX也已经比Swing在性能上有很大提升,JME在嵌入式设备上也有长足进步。还有NetBean很好用,比eclipse好(是吗?持保留态度),anyway 准备玩一下Netbean:)
第一场: Java EE 7 平台大幅提高工作效率并支持HTML5
十个主要新功能,其实自从EJB 3.0开始,我已经不排斥使用JEE了。
第二场: 转向客户端:JavaFX 和 HTML5
第二个, JavaFX很强大,里面可以嵌入HTML,CSS,JavaScript 都没有问题。
第三场:Java Servlet 3.1 (JSR 340) 新特性
印象比较深刻的是NIO(Non-blocking IO),原来是container的线程池直接处理http请求,这样一旦这个请求somehow挂了,那么就少了一个线程去响应请求,web sever的性能就会收到影响,NIO就是收到request,分派个一个守护线程去处理,这样接受request的线程就不会被block,可以腾出手来接受其他请求。
第四场:Spring 应用程序迁移到 Java EE 6
我一向对Spring不感冒,也充分相信JEE 6肯定比Spring要简单、易用、而且更强大。
印象比较深提到了两点。
一,依赖注入,Spring就是靠这个出名的,但JEE 6 的CDI(Context Dependency Injection)是青出于蓝而胜于蓝。
二,AOP, 这个我以前也总结过了,其实拦截器(filter)绝对是实现AOP的最好方式,而filter在JEE中很早之前就有了,其实这个地方可以考虑用Struts2的filter。
我没用过JEE 6中的filter,也许也已经做的很好了。
三,JEE 的server现在启动也是很快的,想JBoss和GlassFish其启动时间 甚至比Tomcat+Spring要短。
其实Sping,Struts,Hibernate的价值,在于他们唤醒了Sun对EJB 2.0的反思, 自从Sun(Oracle)接受了这些轻量级(lightweight)和低侵入(POJO)的思想后,并整合SSH的精髓到其standard后,我就已经原谅你们在EJB 2.0犯的罪了。所以以后有机会做些小项目的时候,我肯定会考虑JEE的。
第五场:Java PaaS 和 Oracle Java 云服务
什么是云?
一,按需提供容量(Add capacity on demand),如果监控做的好的话,甚至可以自动扩容(auto scalability)
二,自动供给(Auto provisioning)
什么是IaaS,PaaS,SaaS?
Oracle Java 云,可以部署Java EE 应用,但目前还不支持JMS,其他都支持,只不过是要收费地!!!