来自于:https://www.quora.com/What-is-the-difference-between-J2EE-and-Spring

Lot of people specially those who are new in Java world are confused with these terms J2EE, JavaEE, J2SE, JDK, Spring, EJB's etc.

Lets Keep it Simple Stupid.

  • What is Java Standard Edition.

(This will clear the confusion related to JDK, J2SE, JavaSE)

    1. In general, you can say this is the core of Java.(The prime part)
    2. You need it, for developing desktop applications as well as web based applications.
    3. It provides everything from basic objects to high level classes which are used for networking, database access, security, XML parsing, GUI development.
    4. Along with this core APIs, it also provides virtual machine (JVM), development tools, deployment technologies etc. (Check here for more details - JDK Development Tools)
    5. Below diagram will show you the version history of Java Standard Edition. - image taken from http://codingfox.com
    1. You can see that Java Standard Edition was called by different names in different years. Hence these different names came into existent, which is now creating the confusion to beginners ;)
    2. But JDK, J2SE, JavaSE are same core part of Java, with more enhanced features and more classes and functionalities.
  • What is Java Enterprise Edition.

(This will clear confusion about J2EE, JavaEE)

    1. Java Enterprise Edition is an abstract specification.
    2. The concrete implementation are so called as the application servers like - GlassFish, WildFly, WebLogic.
    3. When you download JavaEE from Oracle's site, it will give you GlassFish server with bunch of documentations and examples. So they are just providing the implementation of Java Enterprise Edition specification.
    4. You can also prefer to use the other implementations like RedHat WildFly which also follows these specifications.
    5. Below is the version history- taken from Imgur
    1. So, J2EE, JavaEE are just the different versions.
  • Does EJB follows JavaEE specifications?
    1. Yes, EJB is a part of JavaEE specifications. Full fledge JavaEE application server support EJB's out of the box.
    2. This means you can NOT run EJB applications on simple servlet container like Tomcat.
  • Does Spring follows "ALL" JavaEE specifications?
    1. Strictly speaking NO
    2. Spring is a standalone framework, which has substituted and improves many parts of JavaEE.
    3. You can consider the Spring as an integration platform that lets you use all JavaEE technologies.
    4. That means you don't necessarily need the full fledge JavaEE application server to support.
    5. You can run it over simple servlet container like Tomcat.

Summary

So J2EE is a version name of the abstract specification for Java Enterprise Edition from 1999 to 2003.

And Spring is a a standalone integration platform (framework) with improvements and substitutions in JavaEE which also allows you to use JavaEE technologies along with it.

What is the difference between J2EE and Spring的更多相关文章

  1. j2ee中spring的分布式事务实现及解决方案

    1 java事务类型 Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供 ...

  2. Spring 000 框架简介 (转载)

    转载自:https://my.oschina.net/myriads/blog/37922 1.使用框架的意义与Spring的主要内容 随着软件结构的日益庞大,软件模块化趋势出现,软件开发也需要多人合 ...

  3. J2EE学习中一些值得研究的开源项(转)

    这篇文章写在我研究J2SE.J2EE近三年后.前3年我研究了J2SE的Swing.Applet.Net.RMI.Collections. IO.JNI……研究了J2EE的JDBC.Sevlet.JSP ...

  4. Spring安全框架 Spring Security

    Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架. Spring Security  为基于J2EE企业应用软件提供了全面 ...

  5. 超轻量级spring模板方案

    最近从事的工作是web方面的,主要j2ee,spring jsp这些内容,由于刚入门,很多的技术都不了解.所谓初生牛犊不怕虎,刚入门,各种不顺手,比如写jsp,总是重复很多的代码,各种不爽,然后就去看 ...

  6. SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-006-当构造函数有集合时的注入

    一.当构造函数有集合时,只能用<CONSTRUCTOR-ARG>,不能用C-NAMESPACE 二. 1. package soundsystem.collections; import ...

  7. J2EE开源项目

    这篇文章写在我研究J2SE.J2EE近三年后.前3年我研究了J2SE的Swing.Applet.Net.RMI.Collections.IO.JNI……研究了J2EE的JDBC.Sevlet.JSP. ...

  8. Spring框架简单介绍

    原文地址:  http://my.oschina.net/myriads/blog/37922 1.使用框架的意义与Spring的主要内容 随着软件结构的日益庞大,软件模块化趋势出现,软件开发也须要多 ...

  9. spring security 一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中 配置的Bean,充分利用了Spring ...

随机推荐

  1. [转]C++之多态性与虚函数

    面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为.在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体.也可以这样说就是实现了“一个接 ...

  2. tyvj P2018 「Nescafé26」小猫爬山 解题报告

    P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...

  3. ASP.NET—015:ASP.NET中无刷新页面实现

    原文作者:杨友山 原文地址:http://blog.csdn.net/yysyangyangyangshan/article/details/39679823 前面也说过在asp.net中前后前交互的 ...

  4. 使用HTML5开发离线应用 - cache manifest

    HTML5 是目前正在讨论的新一代 HTML 标准,它代表了现在 Web 领域的最新发展方向.在 HTML5 标准中,加入了新的多样的内容描述标签,直接支持表单验证.视频音频标签.网页元素的拖拽.离线 ...

  5. Octave下操作CH341

    #include <octave/oct.h> #include <windows.h> #include <cstdint> #include <fstre ...

  6. WampServer和phpStorm的用法

    WampServer的安装 修改默认的浏览器和文本编辑器 phpStore创建一个PHP工程 在phpStore中运行我们的项目 配制一个PHP Script运行环境 配制一个PHP Web Page ...

  7. UNIX 域套接字——UNIX domain socket

    /*********************程序相关信息********************* * 程序编号:015 * 程序编写起始日期:2013.11.30 * 程序编写完成日期:2013.1 ...

  8. 为什么不取消注册BroadcastReceiver会导致内存泄漏

    原始问题是这样 然后扔到了很多Android开发交流群里. 接着产生了很多的见解,我感觉比较靠谱的有以下: 网友对我问题的回答 1.onDestroy被回调代不代表Activity被回收了? 官方是这 ...

  9. Spark踩坑记:共享变量

    收录待用,修改转载已取得腾讯云授权 前言 前面总结的几篇spark踩坑博文中,我总结了自己在使用spark过程当中踩过的一些坑和经验.我们知道Spark是多机器集群部署的,分为Driver/Maste ...

  10. Mac下Sublime Text 总是以新窗口打开文件的解决办法

    Mac下的Sublime有个毛病,经常打开后,之前打开的窗口都没了,太难受了. Windows/Linux下的sublime总是默认的以标签页的形式打开关联的文件,但是在Mac下使用Sublime打开 ...