像很多喜欢技术的人那样,当听闻jdk1.5引入了.net那样的annotation时,我的第一反应就是惊喜--再也不用为在代码中插入xdoc而感到别扭了。
接下来就是搜肠刮肚地想要把以往那些可以用标签来实现的代码剔除掉而换以标签方式的实现,就像得到了一个涡轮增压的发动机急着想要淘汰掉老式的n/a引擎。但是由于比较忙~加之本人较懒,竟数月未曾做此尝试。
而在java社区,对于这个新的java特性的褒贬也纷至沓来。其中theservside网站上几个牛人的观点还是比较中肯的,我也比较认同:首先,应用=逻辑+数据,逻辑最主要的构成就是代码,但是光是代码还不够,还要加上配置。这就像同是丰田的发动机和意大利设计的外形,不同的排量和组装,一个就是法拉利,一个就是东南菱帅。annotation就是属于配置范畴的概念。
既然如此,那么xml与annotation哪种配置方式更适合呢?这就像说.net和java哪个好一样没意义,要具体情况具体分析(说了等于没说:p)。
一般说来,与个别具体类相关的,用annotation;设计时,而运行期不怎么改的配置,用annotation,反之,经常需要改的用xml;属于类反射信息的,用annotation,例如某些private static型变量;在概念范围上有明确定义或专属作用的,一般用xml;需要统一管理的,数量庞大的配置,用xml;
最后可以归结为:xml更像是配置。而annotation,本身也是某种不可运行的特殊代码参与代码本身的逻辑;或者是类的自描述,是类本身的构成要素。
但是,很多情况并不是非此即彼,很多灰色地带就需要个人再去依情况使用。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器