JAVA和Spring的联系和区别
前置
- 在经历了很多面试的时候,面试官都会问一些宏观的问题。在用到SSM框架后我总结了一系列问题。比如今天要分享的就是JAVA和Spring之间的关系。在谈及两者的关系之前,我们先逐个的解释然后总结单点给出结论。我想这是比较合理的也是符合逻辑的。
- 在Java世界中,很多人都对Java SE、J2EE、Java EE、Spring、EJB等这些术语感到困惑。请认真读完下文!!!
JavaSE(j2SE)
- JavaSE就是一种标准版,是Java中的基础部分(可以说这是Java的核心)。
- 绝大多数的框架都是基于JavaSE的,Java是Java向上发展的基础。
- JAVA SE以前叫j2se 他是支持开发和部署在桌面、服务器、嵌入式和实时运行环境中使用的java应用程序。(用于开发桌面应用程序和基于web的应用程序。)
- 他提供了从基本对象到高级类的所有东西,这些类被应用于网络、数据库的访问、安全、XML解析及GUI的开发。
- JavaSE提供虚拟机,开发工具、部署技术等。
Java EE
java出现的理由
- 在我们编写JSP代码的时候,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和发展。当业务需求发生变化的时候,对程序员和美工都是一中负担。由此javaEE就出现了。
什么是Java EE-- (javaEE是一个开发分布式企业级应用的规范)
- Java EE是一个抽象的规范。javaEE是一个开发分布式企业级应用的规范
- J2EE是1999年到2003年Java EE的抽象规范的版本名称。
javaEE包含的技术
- JavaEE应用程序是由组件构成的。J2EE是具有独立功能的单元,他们通过相关的类和文件组装成Java应用程序,并由其他组件交互
-
这些组建技术有:web service struts Hibernate Spring Jsp Servlet JSF EJB JavaBean JDBC JNDI XML javase
Spring
什么是Spring——Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架
- Spring是一个开源的框架Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。
- 它是为了解决企业应用开发的复杂性而创建的(关键点联系上边的JAVAEE)
-
Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
java “VS” Spring
- Spring遵循“所有”JavaEE规范吗?严格地说不是
- 可以将Spring视为一个集成平台,允许您使用所有JavaEE技术。
- 这意味着您不一定需要完整的fledge JavaEE应用服务器来支持
- 我们可以在像Tomcat这样的简单servlet容器上运行它。
- Spring是一个独立的集成平台(框架),在JavaEE中有改进和替换,也允许使用JavaEE技术。
javaEE 与Spring的区别
- 《J2EE Development without EJB》,描述了新的Spring框架的特性。它就像一股新鲜空气,很快,Spring的直觉依赖注入功能成为了控制反转(IoC)设计模式的实际标准实现。
- JEE和Spring都在发展,尽管Spring似乎总是在前进。Spring引入的所有最佳功能后来都被“标准”企业Java采纳。
- Spring IoC在JEE中实现为容器依赖注入(CDI);
- JEE作为JSR 352实现的Spring批处理:Java平台的批处理应用程序
- java中功能的改进,比如注解。也会导致Spring的修改
- 于此同时Spring也变得模块化
在一定程度上归功于Maven的巨大流行,它引入了一种解决和管理依赖第三方库的新方法
小结
- JEE和Spring继续相互影响并相互鼓励。
- JEE在Spring中激发了新的增强。
可无论是JEE还是Spring的支持者都倾向于认为它们是相互排斥的
终极对比
JAVA EE
- javaEE是一个开发分布式企业级应用的规范
- javaEE 基于注解和CDI
- 利用web开发的JFC MVC框架
- 用于进程数据库操作的JPA(java持久层API)实现
- 基于EJB(javaee服务器端组件模型)和pojo的实现
Spring
- 基于IOC和AOP
- 基于XML配置(注释)
- 使用Spring DAO框架(基于模板设计patter)连接到数据库
- 提供抽象层以支持各种JTA(事务API)实现供应商
- 提供端到端平台构建web应用程序,实现使用DI和AOP的松散耦合
- 开放源码许可