cxf的一些学习体会
开始看cxf的契机是老师上课讲到了web service
课后还留了个作业,写个简单的demo
然后就开始看。说实话对软件高层一直不怎么感冒,一直觉得那些框架是很简单的事情,基础的理论是相通的。但是既然有作业就看一看呗。花了两天(其实不超过十个学时)看了cxf和maven的一些内容。好了。
怎么去学习一项新的技术呢?
看官方文档加google。
这大概是最快的方式了,官方文档上有各种guide和cxf这种技术的应用范围,特点等等
http://cxf.apache.org/docs/index.html
上面这个是cxf的官网地址。可能唯一的障碍是英文,不过之前读技术书的时候一直要求自己读原文而且也学习过java tutorial(http://docs.oracle.com/javase/tutorial/)一段时间,所以这个谈不上障碍,只不过会慢一些相比较中文来说。不过当一门技术刚开始出现的时候,官方文档作为最原始的资料不会那么快有翻译,英文也就是必须的了,而且读英文会有原汁原味的感觉。扯远了。在学习cxf之前,我对web service只有一个大概的概念,Web service是用来分享数据的。可是问题来了,不同的编程语言写的程序也可以?不同操作系统?怎么实现?之前对那些应用层的技术不怎么关注,所以理解那些名词也确实花了不少时间。这些时间花的其实很值得也很舒服。如果把知识比作一座高楼,那么学习的过程绝不是积木式的。而是螺旋式的。堆一块砖上去,继续寻找下一块砖,发现上一块砖不对,把上一块砖在脑海里的概念更新(砌上新砖),然后循环这个过程。其实对于我来说是一个乐趣,那种接近心流的感觉让人充满能量。(我又扯远了)
好了,回到cxf。知道了cxf是干嘛的了。
There are two ways or approaches for developing JAX-WS SOAP-based web
services—Code-first development and contract-first development.
(以下说的都是JAX-WS frontend)
Code-first
Code-first是用代码来构建然后转化成WSDL,这种方法适用于简单格式的输入输出,(为了偷懒,我的demo作业就是用这个做的~)而且不用管WSDL的转化问题。但是有很多缺点,比如不能用于map和集合(因为没有标准的xml映射)等。
Contract-first
其实我觉得这个方式才比较正。别人提供一个WSDL文件,然后你根据这个文件编程去调用他提供的服务。而且这个编程的过程是高度自动化的,用wsdl2java工具,我画了个图来说明这个东西。
省略号表示其他的东西。这些input和outputclass都是有JAX annotation的。
The CXF framework behind the scenes converts the SOAP payload to the POJO class
by referring to JAX annotations.也就是CXF框架提供了基于xml的soap到pojo的转化。当client调用时,cxf framework又再一次完成pojo到xml的转化。(因为xml跨平台嘛)
所以通过WDSL这种方式,很方便地可以实现发布服务。
关于cxf的内容要写的话很多,我也就探索了几个小时,写不了更多,以上的内容也只是粗浅的理解。
这里贴一张图,来源是官网文档。
这样大概就能了解个大概。其实把那些名词搞懂,像砌砖一样把楼砌起来,这些高层的东西无非就是那个样子。
当我对cxf有了了解之后,我开始看下载包里的sample来学习。然后我发现了这些是用maven构建的。What?Maven是什么鬼。
然后还是一样的招数。
看官方文档了解maven的作用和使用方法,google释疑,安装下来敲几个demo。
用不了多久maven的轮廓也就清晰起来了(当然我没有说我能熟练使用)
总结:写得很简单,该睡觉了没空写,后面有时间要研究cxf的话有空写一写cxf的学习笔记。总之呢,好好学习,天天向上~
1.操作系统、计算机网络基础很重要(当然之前就在刷只是这次更坚定了)
2.框架很容易上手
3.坚持看英文技术书
4.Spring是个好东西
5.为什么csapp第三版影印版还不出。。。