其次一说到J2EE,我首先想到的就是JCP社区由SUN主导的那一些列规范,最新的JavaEE6.0(JSR316)定义了一些profile,但是这些profile引用了其他的jsr规范,这就是我们所说的javaEE的来源,那么经常听人问“你们用什么J2EE框架”“SSH”。ssh其中任何一个都没有在JavaEE6.0或者更早期的版本里定义,甚至连JSR都不是,那么SSH能说是J2EE框架么?一般提到的JavaEE6.0是JSF+EJB+JPA这个组合,其中EJB在核心的位置上,那么如何称呼和划分更加严谨一些?
一般来说J2ee的包括:ejb / web service / jms
SSH只是应用的比较广泛的一种实现模式
SSH体现了分层结构,Hibernate算JPA的一个实现,而且还很不错,struts也算servlet的一个扩展实现。
使用标准当然会得到更好的支持,但是很少有人会为了标准放弃某个服务器提供的优秀专属API,这就导致不能在各服务器间兼容。
怎么做就得看有没有必要,没必要的情况下可以放弃标准选择更快速更简易的工具。就像很多人说的没有万能的锤子一样,标准也有可能把钉子砸弯。
怎么划分就难说了,在JEE伞状规范里的东西都用到才算JEE,还是只用子集就算,没有地方定义这种划分。SSH在我看来因为用了hibernate,就算JEE框架。
JavaEE是JSP,SERVLET,JSLT,EL,JSF,EJB,JPA,JMS,JAAS,JAXWS,JAXRS,JAXB等等