- 概念多且杂,且看且过
JAVA & J2EE
Java
和Java EE
(也可称J2EE
,其中的故事)是两个不同概念
Java
不仅指一种语言,也可以指一种软件系统的流派
目前JAVA
有三个平台:
-
适用于小型设备和智能卡的
Java
平台Micro
版Java Platform Micro Edition
=>Java ME
-
适用于桌面系统的
Java
平台标准版Java Platform Standard Edition
=>Java SE
-
适用于创建服务器应用程序和服务的Java平台企业版
Java Platform EnterPrise Edition
=>Java EE
Java EE是将所有基于Java的企业应用开发技术集合在一个体系结构下的平台
企业应用开发
企业应用开发覆盖面比较广泛,基本上都是围绕数据中心式的Web应用
主流Web开发技术
- Java:SpringBoot,JavaEE SSH,SSM
- C#: Asp.net
- Python: Django, Flask
- PHP: Larave,ThinkPHP,CodeIgnite
- Node.js: Express, Koa
- 前端:JavaScript,Html, CSS, Vue, react
移动开发、数据库开发这三大领域的主流技术都可以关注
数据库
绝大多数企业应用都会使用到数据库
- 关系型数据库 MySQL,SQL Server,PostgreSQL
- 非关系型数据库 MongoDB,Counchbase
- 云服务 Firebase,AWS,DocumentDB,Azure
- 轻量级 SQLite,NeDB,Redis
框架组合
在市面上大家常用如下的框架组合,可以发挥各框架的最大优势,良好的解决企业级应用的需求
- Struts+Spring+Hibernate框架(SSH框架)
- SpringMVC+Spring+Hibernate框架
- SpringMVC+Spring+MyBatis框架(SSM框架)
其他理解
java EE是面向企业开发用的java版本。 J2EE使用多层的分布式应用模型,有的分四层有的分三层,其实都是差不多的。我这里分三层:表现层(UI)、业务逻辑层(BLL)、数据访问层/持久层框架(DAL)。 在不同的层上使用不同的框架,那么,不同的层上都有如下的框架: 表现层框架:SpringMVC框架,Struts2框架、JSF框架、Tapestry框架、WebWork框架 业务逻辑层框架:Spring框架 持久层框架:Hibernate框架、MyBatis
Java EE
Java EE是将所有基于Java的企业应用开发技术集合在一个体系结构下的平台
与Microsoft公司的.Net相比, Java EE更能满足互联网在智能化Web服务方面的开放性、分布性和平台无关性
运用Java技术开发企业应用的标准
- 多层应用开发模型
- 开发平台 - APIs 和服务
- 测试软件包
- 参考实现
Java EE平台已经成为电信、金融、电子商务、保险、证券等各行业的大型系统的首选开发平台
Java EE大致分为几种方式:
- 以EJB3+JPA为核心的经典Java EE开发平台。
- 以Spring为核心的轻量级Java EE企业开发平台。
- 基于Spring boot,Spring cloud开发
Java EE应用分层结构
- 表现层:此层由系列的jsp页面、Velocity页面、PDF文档视图组件组成,负责收集用户请求,并显示处理结果。
- 控制器层:此层由系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。
- 业务逻辑层:此层由系列的业务逻辑对象组成
- 业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑方法可能是依赖DAO组件实现的业务逻辑方法,也可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法
- 数据访问对象(Data Access Object,DAO)层:此层由系列的DAO组成,这些DAO实现了对数据库的创建、查询、更新和删除(CRUD)等原子操作。
- 领域对象(Domain Object )层:此层由系列的POJO(Plain Old Java Object,普通传统的Java对象)
Java EE的组件和容器
组件:JavaEE基本的软件单元 —— 面包
容器:分布式组件的运行环境 —— 烤箱
容器为组件提供必需的底层基础功能 —— 服务
- javaEE的容器由厂商实现,javaEE服务器中均包含Web容器和EJB容器的实现
- 如JDBC、JMS、JNDI服务、持久化、事务支持、并发、安全性、资源和生命周期管理
轻量级Java EE架构
企业Java相关技术
JSP、Servlet和JavaBean
Struts 2/SpringMVC
Hibernate/MyBatis
Spring
Struts2/SpringMVC+Spring+Hibernate/MyBatis
Struts2/Spring MVC进行流程控制,Spring进行业务流转,Hibernate/Mybatis进行数据库操作的封装
整体框架和业务层用Spring,控制层用Struts/Spring MVC,而持久层用Hibernate/MyBatis
JSP、Servlet和JavaBean
JSP
JSP:全称是JavaServer Page。在html页面中嵌入JSP标记和脚本代码。JSP把静态内容和动态内容的分离,实现了内容和表示的分离。
JSP,Servlet是最早的Java EE规范之一, 同属表现层,都属于“动态网页技术”
静态网页技术就是把做好的html文件直接上传到服务器并直接供客户浏览
动态网页技术则是每次都根据用户请求,动态生成响应页面并返回。
优势:灵活性,数据保密性
Servlet
JSP必须被Web服务器翻译成Servlet,真正在Web服务器内运行的是Servlet。
Servlet:实际上就是按照Servlet规范编写的一个java类,与传统的命令行启动的Java应用程序不同,Servlet位于Web服务器内部,并由Web服务器加载并调用。
JavaBean
JavaBean 是一种JAVA语言写成的可重用组件,一种特殊的Java类,就是有默认构造方法,只有get,set的方法的java类的对象
JavaBean分为可视化组件和非可视化组件
- 可视化组件可以是简单的GUI元素,如按钮或文本框,也可以是复杂的,如报表组件
- 非可视化组件没有GUI表现形式,用于封装业务逻辑、数据库操作等
最大优点在于可以实现代码的可重用性
Struts 2
Struts其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提高系统的可维护性、可扩展性和可重用性。
Struts是Java EE应用中使用最早和最广泛的MVC框架,其作者是JSP规范的制定者,也参与了Tomcat的开发。主要分为模型(Model)、视图(Viewer)和控制器(Controller)三部分
早期的Struts框架与另一个优秀的MVC框架WebWork相结合产生了全新的Struts 2
类似框架: Spring MVC
Hibernate
Hibernate框架是一种开源的、轻量级的ORM框架,它允许将普通的、传统的Java对象(POJO)映射成持久化类,允许应用程序以面向对象的方式来操作POJO,而Hibernate框架负责将这种操作转换成底层的SQL操作。
类似框架:mybatis
Spring
Spring是一个解决了许多Java EE开发中常见问题的强大的轻量级框架。
Spring只是抽象了大量Java EE应用中常用代码,将它们抽象成一个框架,通过使用Spring可以大幅度地提高开发效率,并可以保证整个应用具有良好的设计。
Spring比较像是一种中间层容器,向上它可以和MVC框架无缝整合,向下可以与各种持久层框架无缝整合。
Spring框架的核心是控制翻转IoC(Inversion of Control)/依赖注入DI(Dependence Injection)机制
实际应用
轻量级Java EE应用以传统的JSP作为表现层技术,以系统开源框架Struts/Spring MVC、Spring、Hibernate、MyBatis分别做为MVC层、中间层和持久层,将这些开源框架有机组合在一起,形成开发具有高度的可扩展性、可维护性的Java EE应用的解决方案。
如果系统没有使用任何框架:
- 软件维护:全部采用JSP和Servlet的应用,分层不够清晰,业务逻辑的实现没有单独分离出来,造成系统后期维护困难。
- 软件复用:每次开发系统都需要重新开发,不仅增加了系统出错的风险,也需要投入更多的人力和物力。
SSH/SSM结构分析
WEB服务器
采用SSH/SSM组合架构的软件系统无须专业的Java EE服务器支持,只需要简单的Web服务器就可以运行。Java领域常见的Web服务器都是开源的,而且具有很好的稳定性,以下是其中主流的几个:
- Tomcat:Tomcat和Java结合的最好,是Sun官方推荐的JSP服务器。
- Jetty:一个优秀的Web服务器。Jetty的优点在于,Jetty可以作为一个嵌入式服务器,即:如果在应用中加入Jetty的JAR文件,应用可在代码中对外提供Web服务。
- Resin:目前最快的JSP、Servlet运行平台、支持EJB。学习免费,商用收费。
Java EE服务器
除了上述Web服务器以外,还有一些专业的Java EE服务器,相对于普通的Web服务器而言,Java EE服务器支持更多的Java EE特性,比如分布式事务、EJB容器等。常见的主要有以下几个:
- JBoss:开源的Java EE服务器,目前支持EJB 3.0技术。
- WebLogic和WebShpere:这两个是专业的商务Java EE服务器,价格不菲,但性能等各方面相当出色。
参考
https://blog.csdn.net/weixin_51422230/article/details/126952133