z*******3 发帖数: 13709 | 1 我这点很同意tom说的
一旦你用了,你就爱不释手
不会之前你会觉得很可怕
但其实没有那么可怕
无非是个工具,你只要理解了这些东西做什么用的
剩下的就很简单,无非做两个试验,照葫芦画瓢
先看定义,javaee的定义,摘取自wikipedia
Java EE includes several API specifications, such as JDBC, RMI, e-mail, JMS,
web services, XML, etc., and defines how to coordinate them. Java EE also
features some specifications unique to Java EE for components. These include
Enterprise JavaBeans, Connectors, servlets, JavaServer Pages and several
web service technologies. This allows developers to create enterprise
applications that are portable and scalable, and that integrate with legacy
technologies. A Java EE application server can handle transactions, security
, scalability, concurrency and management of the components that are
deployed to it, in order to enable developers to concentrate more on the
business logic of the components rather than on infrastructure and
integration tasks.
那好,我们说说这里面的名词定义
无非jdbc, rmi, e-mail, jms, web service, xml, ejb, connectors, servlet, jsp
etc.
其实没有多少东西,只要你理解了这些东西是做什么的
你就完成了大半,当然我没有说实现很容易,实现起来随便一个都是大topic
分块解释,先把大系统分为不同的tiers
客户端技术,服务器front end技术,服务器back end技术,db部分
1)客户端技术
java这一块的选择有
applet,这个是嵌入浏览器的小程序,非常难搞,因为你要搞定浏览器
这个其实是java最早出名的地方,走到今天主攻搞server side反而有点意料之外
awt,java第一代ui控件,很恶心,用起来很痛苦,很多都要自己实现
比如双缓冲,不实现屏幕疯狂闪烁,这搞什么
swing,这个是java第二代ui控件,其实做得不错,但是没有得到大规模推广
但是不管怎样,swing取得一点范围内成功,还是有公司和企业在用
javafx,这个是官方准备java 8以后取代swing的东西
做得还不错,至少从外观上看,好看很多,有兴趣的可以玩一玩
这一块做得怎样呢?这一块做得其实不怎样,java在这一块一直都过得很憋屈
因为m$当年跟sun闹翻了之后,就互相抬杠鸟
2)服务器front end技术
java这一块的选择有
servlet,这个是javaee标准的一块,也是最早出现的一块
这个简单,估计所有人都用过
jsp,这个其实是为了替代servlet的代码编写不直观的产物
流行了一段时间,但是官方最近准备淘汰jsp
jsf,淘汰了jsp换成什么呢?换成jsf,javax.faces包
这也是javaee标准的一块
servlet+jsf加起来就是服务器front end的官方版本
只要拿到了javaee6的证书的产品,也都实现了以上三个技术
well, 至少servlet+jsf没问题,jsp应该也都实现了,太古老的东西了
3)服务器back end技术,这一块全部都是javaee标准
这一块java有
ejb,好可怕的东西,ejb最重要的不仅仅是实现rmi
还有实现了web service的接口,而且将来趋势是发展web service部分
validation,这个其实最早是hibernate的一个子项目
由于有广泛意义,所以也变成标准的一部分
jms,这个是以前是ejb的一种,后来独立出来,变成单独的部分
message处理机制的实现,挺好用的
injection,这个其实javase5的新机制,使得编写程序更为便捷的一种方式而已
在哪一个层面都可能用到
resource,jca,连接器部分,就是不同的server之间要互相通信
该怎么办?其实除了rmi和web service之外,jca也是一种很好的方式
而且大部分知名的it公司,比如ibm,都实现了跟非java系统的connector
比如跟.net的connector,跟sap的connector etc.
那么很自然的一个问题,如果我有两个系统,该用什么办法集成呢?
jms,rmi,web service还是connector?
参考这篇文章
http://www.ibm.com/developerworks/webservices/library/ws-jcajms
4)db部分
这一块java的选择有
jdbc,这是java跟db交互的基础,应该所有人都用过
persistence,jpa,也就是orm,很经常的实现有hibernate之类的
这一块只负责包装db中的数据,以及做增删改查的处理
transaction,jta,这个是最让人头痛的部分,事务的处理
这个在以前也是ejb的一部分,ejb把管理事务放在container中去做
后来单独出来成为一块
那么websphere, weblogic, jboss这些实现了以上多少呢?
这几个大号的app server实现了上面全部技术和接口
所以你就可以感觉出来,如果你要做eai,有一堆乱七八糟的系统
等着你去集成,如果有那么一两个系统用了websphere等app server
你会多么幸福,因为不管什么系统,你都可以很轻松地跟它对接上
用标准的方式,所以这些技术你不用都不觉得怎样
用了就会爱上它们,因为它们帮忙做了太多东东
现在已经不是10年前了,现在所有乱七八糟的狗屁公司都有自己的一堆系统
如何把这些现有的系统给集成起来才是将来的主流
当然新的系统还会不断涌现,但是现有的系统
肯定是要维护和集成的,那么如何集成是一个很有趣的话题 | z*******3 发帖数: 13709 | 2 我本人对于jca持保留态度
因为如果要tightly coupling,我干脆写成一个系统
做集群好了,如果不需要的话
那我用jms或者web service更好
现在java的web service还不是很规范
rest的实现还不完全
wsdl也只到1.x版本,2.0以后明显好用得多
看1.x的那个port就浑身上下不舒服 | t*******e 发帖数: 684 | 3 JavaEE里面的东西除了JPA,其他都很容易上手。那个一千多页的tutorial看完,基本
就可以干点活了。反正跨平台,code到哪都能用。
EAI就比较乱。老的商业产品一大堆,完全没有设计规范,(EDI等数据规范不算)。后
来JBI出来了,很多vendor不服,tight-coupling with SOAP and BPEL。然后加了SCA/
SDO,OSGi, BPMN,WS-×××等等,到现在还是一样的局面,必须先决定用那个产品,
再学其技术。 | z*******3 发帖数: 13709 | 4 所以到了这一块基本上就没有什么书可以看了
书呆子就挂了
完全讲究实践经验
不过一般挖人时候,这些东西也不会认真问就是了
大多数时候都是问,用没用过啊?
回答,用过,对方说,好,然后也不会细问下去
这样不规范其实对我们码农有利
对开发人员的依赖增强了,新来的无论多少经验要上手会很痛苦
反倒是jee标准的控件换人容易
不过为什么我觉得jpa很容易呢?
如果以前就用了jpa的,照着葫芦画就是了
如果没用的,估计来了新的需求也不会用,对于老系统而言
反倒是jta什么不太容易搞,毕竟不是那么常用
遇到问题只能看tutorial,要看完可不是那么容易的
现在还好了,以前啃书本的时候,经常遇到不懂的概念
完全读不下去,我正文转的那篇文章在我学ejb时候看不懂
现在再回头看,也没什么难的,但是当时不理解什么是jca,就是看不懂
SCA/
【在 t*******e 的大作中提到】 : JavaEE里面的东西除了JPA,其他都很容易上手。那个一千多页的tutorial看完,基本 : 就可以干点活了。反正跨平台,code到哪都能用。 : EAI就比较乱。老的商业产品一大堆,完全没有设计规范,(EDI等数据规范不算)。后 : 来JBI出来了,很多vendor不服,tight-coupling with SOAP and BPEL。然后加了SCA/ : SDO,OSGi, BPMN,WS-×××等等,到现在还是一样的局面,必须先决定用那个产品, : 再学其技术。
|
|