Java EE:基础知识

想要了解一些基本原则,即与Java EE相关的技术术语。 对于许多人来说,Java EE / J2EE仍然最多意味着Servlet,JSP或Struts。 没有冒犯或双关语!

无论如何,这不是Java EE的“圣经”。 我没有能力写这样的东西! 因此,让我们排列与Java EE相关的“关键字”,然后逐一查看它们

  • Java EE
  • Java EE API(规范)
  • 货柜
  • 服务
  • 多层应用
  • 组件

让我们尝试详细说明上述几点。

那么什么是Java EE?

“ EE”代表企业版。 这实质上就是Java EE – Java Enterprise Edition。 如果我不得不用几句话来总结Java EE,它将是这样的

“ Java EE是一个平台,它定义了“标准规范/ API”,然后由供应商实施并用于开发企业(分布式,“多层”,健壮的)“应用程序”。 这些应用程序由使用Java EE“容器”作为运行时基础结构的模块或“组件”组成。”

它是什么构成的?

  • 该平台围绕“标准”规范或API展开
  • 可以将它们视为由标准机构定义的合同,例如企业Java Bean(EJB),Java Persistence API(JPA),Java Message Service(JMS)等。
  • 这些合同/规范/ API 由不同的供应商实施,例如GlassFish,Oracle Weblogic,Apache TomEE等

容器呢?

  • 容器可以可视化为“虚拟/逻辑分区”
  • 每个容器都支持Java EE平台定义的API /规范的子集
  • 他们向其托管的“应用程序”提供运行时“服务”

Java EE规范列出了4种容器

  • EJB容器
  • 网络容器
  • 应用程序客户端容器
  • 小程序容器

Java EE容器

货柜

在这篇文章中,我将不涉及这些容器的细节。

服务??

  • 嗯, “服务”不过是标准“规范”的供应商实施的结果(如上所述)。 规格示例包括–用于JAX-RS的Jersey (RESTFul服务), Tyrus (Web套接字), EclipseLink (JPA), Weld (CDI)等。  
  • “容器”是已部署的应用程序(“服务”使用者)和应用程序服务器之间的接口。

这是“容器”提供给基础“组件”的“服务”列表(这不是详尽的列表)

  • 持久性 –由Java持久性API(JPA)提供,它驱动对象关系映射(ORM)和数据库操作的抽象。
  • 消息传递 – Java消息服务(JMS)在应用程序的不同部分之间提供异步消息传递。
  • 上下文和依赖注入 – CDI提供松散耦合和类型安全的资源注入。
  • Web服务 – JAXRS和JAXWS分别提供对REST和SOAP样式服务的支持
  • 事务 –由Java事务API(JTA)实现提供

它由什么组成?

应用程序由不同的“ 组件 ”组成,这些组件又由其相应的“ 容器 ”支持

支持的“组件”类型为:

  • 企业应用程序 –利用EJB,JMS,JPA等规范,并在EJB容器内执行
  • Web应用程序 –它们利用Servlet API,JSP,JSF等,并由Web容器支持
  • 应用程序客户端 –在客户端执行。 他们需要一个应用程序客户端容器,该容器具有一组受支持的库并在Java SE环境中执行。
  • 小程序 –这些是在Web浏览器中执行的GUI应用程序。

Java EE应用程序的结构如何?

就Java EE“应用程序”体系结构而言,它们通常遵循n层模型,该模型由客户端层,服务器层以及数据库(后端)层组成

  • 客户端层 –包含基于Web浏览器或基于GUI(Swing,Java FX)的客户端。 当GUI客户端直接与服务器层中的“业务”层进行交互时,Web浏览器倾向于与服务器层中的“ Web组件”对话。
  • 服务器层 –该层由动态Web组件 (JSP,JSF,Servlet)和由EJB,JMS,JPA,JTA规范驱动的业务层组成
  • 数据库层 –包含由数据库甚至传统数据存储库支持的“企业信息系统”。

通用的3层Java EE应用程序体系结构

概述多层应用程序

Java EE –基本知识...。 尽可能快,简短地完成。 目前为止就这样了!

请继续关注更多Java EE内容,尤其是有关最新和最佳版本的Java EE平台–> Java EE 7

您可能想先阅读一下有关Java EE 7的介绍性文章

祝您阅读愉快!

翻译自: https://www.javacodegeeks.com/2014/03/java-ee-the-basics.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义鼠标样式

效果图展示&#xff1a; 代码 &#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv&q…

微信小程序开发POST请求

微信小程序开发POST请求 wx.request( { url: "http://op.juhe.cn/onebox/weather/query", header: { "Content-Type": "application/x-www-form-urlencoded" }, method: "POST", //data: { cityname: "上海", key: &…

6.11python 作业

1.课堂例子: 01初识python #!/usr/bin/env python # -*- coding: utf-8 -*-# print(hello world!)print(hello world!) name lyj print(name)# id,type,value x 10 y 10 python小计数池(python优化机制):在变量值产生后指定的范围内&#xff0c;在内存中事先开辟一块内存空间…

linux下常用命令

创建软连接&#xff1a;ln -s b a //为b创建一个快捷方式a&#xff0c;只是一个镜像&#xff0c;不占用空间。 ln -sf b a //差不多 &#xff0c;-f强制执行 ln b a //创建硬链接&#xff0c;会占用相同的大小空间&#xff08;不允许给目录创建硬链接&#xff09; svn…

2012服务器系统关闭网络共享,提供网络服务的前提,Windows Server 2012如何更改高级共享设置...

今天介绍系统提供网络服务的前提&#xff0c;Windows Server 2012 R2操作系统如何更改高级共享设置。小伙伴们可能都听说&#xff0c;网络配置是提供各种网络服务的前提。Windows Server 2012 R2操作系统安装完成以后&#xff0c;默认为自动获取IP地址&#xff0c;自动从网络中…

Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别

很长一段时间以来&#xff0c;WeakReference和SoftReference都已添加到Java API中&#xff0c;但是并不是每个Java程序员都熟悉它。 这意味着在Java中使用WeakReference和SoftReference的位置和方法之间存在差距。 参考类对于垃圾收集的工作方式尤其重要。 众所周知&#xff0c…

css设置字符长度,在css中设置最大字符长度

12 个答案:答案 0 :(得分&#xff1a;199)你总是可以通过设置max-width和溢出ellipsis来使用截断方法p {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 200px;}对于多行截断&#xff0c;请查看flex解决方案。截断3行的示例。p {overflow: hidden;d…

关于html以及js相关格式验证的记录

验证的常见方式 我们在写前端的时候或多或少的会遇到一些验证格式问题&#xff0c;通常我们有三种解决办法。 第一种就是在输入完成后在输入框附近验证给出提示第二种就是在输入完成后在提交的时候排着验证提示第三张就是限制输入 前面两种我们都是非常的熟悉以及想到的&…

mysql重做日志_MySQL-重做日志 redo log -原理

【redo log buffer】【redo log file】-原理目录&#xff1a;1.重做日志写入过程图2.相关知识点汇总图3.redo_log_buffer 原理4.redo_log_file 原理1. 重做日志写入过程&#xff1a;2. 相关知识点汇总&#xff1a;3. redo log buffer 原理重做日志缓冲(redo log buffer)是Innod…

Java 8 Friday:使用Streams API时的10个细微错误

在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五&#xff0c;我们都会向您展示一些不错的教程风格的Java 8新功能&#…

mysql集群重启offline_mysql集群搭建问题及解决方法集锦

在上一篇博客中写了如何搭建mysql集群&#xff0c;之所以遇到这些问题&#xff0c;是因为刚开始弄mysql集群的时候不熟悉&#xff0c;正是因为这些问题&#xff0c;让我对mysql集群的了解渐渐深入&#xff0c;下面介绍在搭建mysql集群的时候我遇到了一些问题。1、mysql集群安装…

Java SE 8新功能导览:Java开发世界中的重大变化

与其他专业团队成员一样&#xff0c;我是采用OpenJDK的成员之一&#xff0c;但是从最近8个月开始加入&#xff0c;我们经历了Java SE 8 开发&#xff0c;编译&#xff0c;编码&#xff0c;讨论等各个阶段&#xff0c;直到将其付诸实践为止。 。 它于2014年3月18日发布&#xff…

从Java官网下载最新的文档(包含API文档)

Java学习资料(适合c转java的同学)&#xff1a; Java中带包&#xff08;创建及引用&#xff09;的类的编译 - 小明快点跑 JAVA 对象引用&#xff0c;以及对象赋值 - 飘来荡去。 Java官网下载页&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/index.html…

babel安装

注意&#xff1a;如果没有装node.js&#xff0c;先去装一个&#xff01;&#xff01;安装node.js时会默认安装npm。 步骤&#xff1a; 1、新建一个文件夹&#xff0c;装接下来的所有东西。我新建了一个learn-es6文件夹 2、在learn-es6项目文件下创建根目录文件&#xff1a; …

针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom

为什么呢 很多时候&#xff0c;我在日常工作中试图解决一些基本或复杂的Maven / Java EE项目结构问题。 为了提供解决方案&#xff0c;我经常最终会尝试项目结构&#xff0c;测试我在不同应用程序服务器上的部署并细化我的配置。 Maven对于新来者来说可能会有陡峭的学习曲线&a…

sql server 学习记录

sql-server 基础&#xff1a; 1、查看sqlserver的数据表 SELECT name,crdate FROM SysObjects Where XTypeU order by crdate desc 查看数据表的字段 SELECT A.name AS table_name,B.name AS column_name,C.value AS column_description FROM sys.tables A INNER JOIN sys.col…

mysql 子字符串函数_MySQL 内置字符串函数

MySQL内置函数concat()用于连接字段LTRIM(),RTRIM(),TRIM()分别用于去除左边空格,右边空格,以及左右空格都去除NOW()放回当前的日期和时间UPPER() 和LOWER()upper():转换为年夜写输出; lower() 转换为小写输出LEFT()返回串左边的字符RIGHT()返回串右边的字符,办法参考LEFT()LOC…

弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介

弱监督学习下商品识别&#xff1a;CVPR 2018细粒度识别挑战赛获胜方案简介 细粒度视觉分类&#xff08;FGCV&#xff0c;Fine-Grained Visual Categorization&#xff09;即识别细分类别的任务&#xff0c;一般它需要同时使用全局图像信息与局部特征信息精确识别图像子类别。细…

JS中apply和call的应用和区别

因为object没有某个方法&#xff0c;但是别的对象有&#xff0c;可以借助apply或call像别的对象借方法来操作。 猫吃鱼&#xff0c;狗吃肉&#xff0c;奥特曼打小怪兽。 有天狗想吃鱼了 猫.吃鱼.call(狗&#xff0c;鱼) 狗就吃到鱼了 猫成精了&#xff0c;想打怪兽 奥特曼.打小…

解题:NOIP 2018 保卫王国

题面 最小支配集全集-最大独立集 所以先把点权改成正无穷/负无穷来保证强制选/不选某个点到独立集里&#xff0c;然后变成了洛谷的动态DP模板 GTMDNOIP2018ZTY 1 #include<stack>2 #include<cstdio>3 #include<cstring>4 #include<algorithm>5 using n…