我想知道标准的真正意义在于??
在JAVA企业级应用中仿佛JCP就像一个旗帜一样,前一阵无事,便对JCP中的900多条jsr浏览了一遍,总结有以下几种情况:
1、JSR包含规范的描述,以及提供这个规范的标准接口API,一个仅仅由接口和部分具体类组成的jar包,比如说Servlet规范,这点很好理解,不同厂商的服务器对Servlet相关接口都有自己的实现,这样可以让开发人员让开发的代码不依赖于具体的容器。
2、与第一种情况不同的是,第二种规范提供绝大多数具体类和一小部分spi由厂商实现,比如jax-ws规范。
3、第三种规范提供完全的具体类组成的jar包,其中没有任何厂商自己实现的内容,比如jaxb规范。
如果所有规范都是第一种情况,那么我还好理解,就像是工业部门定义螺丝帽必须直径五厘米,然后所有螺丝钉厂商都要按照这个规格制造,这样就能让产品选择不依赖于厂家。但是第二甚至第三种情况就让人纳闷,规范组织定义一个完全不需要厂商实现什么的东西作为规范有什么意义么?这就像洗发水规范组织定义“用洗发水必须用飘柔牌”的一样,人家凭什么只用jaxb阿?
如今开源框架比比皆是,最盛行的就算SSH,但是SSH本身并不是规范,很多人也因此认为ejb比SPRING有更长的生命周期,即便这个人本身很讨厌EJB也会下如此结论,那么规范真的有那么大魔力么?一个根本不需要别人实现的规范意义有在哪里?那顶多算做一个优秀的实现又怎能算作一种规范呢?