我是 Java 世界的新手,来自 .Net。在.net 世界中,我们没有太多选择。我有一些基本问题可以帮助我了解更多背景信息。
Spring Framework 是建立在 Java SE 还是 Java EE 之上的?
还是 Java EE 和 Java SE Oracles 产品?意思是 Java SE 是 Oracle 的 Java 实现?
Spring 框架是基于什么构建的?换句话说,如果我想构建一个类似 Spring 的框架,我会从 Java SE 作为基础开始吗?
谢谢
Java SE是普通的旧 Java,因此是 SE(标准版)。Java EE(企业版)是一组 API,服务器必须实现这些 API 才能获得与 Java EE 兼容的许可。Oracle / Sun 创建了 SE 和 EE 的参考实现(Glassfish),但 EE 通常由应用服务器(JBoss、WebSphere 等)实现。
Spring 建立在 Java SE 之上,但可以运行(并使用 Java EE 的一些特性)。当完整的 EE 堆栈不可用时,它也可以作为替代方案,允许非 EE 平台集成JPA或 JMS 等 EE 技术。
Spring 与 Java EE 是一场持续的圣战,尽管它并非必须如此。我个人更喜欢 Spring,因为它不需要特殊的服务器基础设施并且可以在任何环境中运行(Java App、Applet、Servlet、Android,你可以说它),但另一方面也有非常有说服力的论据(至少对于 EE 6+ )。还有一些人主张将 Spring 与 EE 一起使用,但我想这与 EE 6 不再相关。
Spring Framework 是建立在 Java SE 还是 Java EE 之上的?
Spring 建立在 Java SE 之上,可以与任何 Java 应用程序一起使用,尽管它有许多增强功能来简化 Java EE 开发。
还是 Java EE 和 Java SE Oracles 产品?意思是 Java SE 是 Oracle 的 Java 实现?
从技术上讲,Java SE/EE/ME 等是 Oracle 的产品,版本 7 基于 OpenJDK 作为参考实现。
Spring 框架是基于什么构建的?换句话说,如果我想构建一个类似 Spring 的框架,我会从 Java SE 作为基础开始吗?
如果可能,在学习新框架时从 Java SE 开始。如果您的最终目标是 EE 应用程序,那么从控制台 SE 应用程序开始将允许您探索框架,而不必担心它如何适合 EE。
Java 标准版与 Java 企业版
Java具有JDK(Java开发工具包)和虚拟机(VM)。
您可以将 java 作为独立应用程序运行,例如 Applet、Swing 应用程序
J2EE 有所不同,顾名思义,它有许多组件用于现实世界(企业)应用程序(都需要 JDK 和 VM)
J2EE components.
servlet
EJB
JPA
http://docs.oracle.com/cd/E19830-01/819-4725/abmcb/index.html
j2ee 组件需要 web 或应用程序服务器,如 tomcat、jboss 才能运行。
最后,Spring 框架不过是 java ,因为您编写 java 程序时不使用任何 j2ee 组件。
spring 框架是一组包。IOC, AspectJ , Spring security, spring jdbc
,spring MVC
每一个都提供了一些简化当今开发活动的功能,过去我们(Java 开发人员)曾经编写大量代码来处理 jdbc 连接(spring jdbc 现在这样做)、对象生命周期处理(spring IOC)、web 安全性(spring security )。小服务程序(Spring MVC)
所以spring为开发人员过去手动编码(Java Coding)并进行大量开发活动的领域提供了解决方案,而这又是Java以SPRING的名义自行提供的。
Spring Framework 是用 Java 编写的,你可以在这里找到源代码: https ://github.com/spring-projects/spring-framework