Java EE容器为组件提供了各种服务,这些服务是企业应用经常用到但开发人员难以实现的,例如命名服务、数据库连接、上下文和依赖注入、事务、安全和连接框架等。现在这些服务已经由容器实现,因此Java EE组件只要调用这些服务就可以了。

1.命名服务

企业应用中通常包含大量的组件,为了完成功能需求,组件间通常要相互调用。JND(I Java Naming and Directory Interface, Java命名和目录服务接口)简化了企业应用组件之间的查找调用。它提供了应用的命名环境(namingenvironment)。这就像一个公用电话簿,企业应用组件在命名环境注册登记,并且通过命名环境查找所需要的其他组件。

2.数据库连接服务

数据库访问几乎是任何企业应用都需要实现的。JDBC(Java DataBaseConnectivity, Java数据库连接)API使Java EE平台可以和各种关系数据库之间连接起来。JDBC技术提供Java程序和数据库服务器之间的连接服务,同时它能保证数据事务的正常进行。另外,JDBC提供了从Java程序内调用SQL数据检索语言的功能,Java EE 6平台使用JDBC 4.0 API以及JDBC 4.0拓展API,这些API提供了高级的数据连接功能。

3.Java事务服务

JTA(Java Transaction API, Java事务API)允许应用程序执行分布式事务处理——在两个或多个资源节点上访问并且更新数据。JTA用于保证数据读/写时不会出错。当程序进行数据库操作时,要么全部成功完成,要么一点也不改变数据库内容。最怕的是在数据更改过程中程序出错,那样整个系统的业务状态和业务逻辑就会陷入混乱。所以,数据事务有一个“不可分微粒”的概念,是指一次数据事务过程不能间断,JTA保证应用程序的数据读/写进程互不干扰。如果一个数据操作能整个完成,它就会被批准;否则,应用程序服务器就当什么都没做。应用程序开发者无需自己实现这些功能,这样数据操作就被简化了。数据事务技术使用JTA的API,它可以在EJB层或Web层实现。

4.安全服务

JAAS(Java Authentication Authorization Service, Java验证和授权服务)提供了灵活和可伸缩的机制来保证客户端或服务器端的Java程序。Java早期的安全框架强调的是通过验证代码的来源和作者,保护用户避免受到下载下来的代码的攻击。JAAS强调的是通过验证谁在运行代码以及他/她的权限来保护系统免受用户的攻击。它使用户能够将一些标准的安全机制,例如Solaris NIS(网络信息服务)、Windows NT、LDAP(轻量目录存取协议)或Kerberos等通过一种通用的可配置的方式集成到系统中。

5.Java连接框架

JCA(Java Connector Architecture, Java连接框架)是一组用于连接Java EE平台到企业信息系统(EIS)的标准API。企业信息系统是一个广义的概念,它指企业处理和存储信息数据的程序系统,例如企业资源计划(ERP)、大型机数据事务处理以及数据库系统等。由于很多系统已经使用多年,这些现有的信息系统又称为遗产系统(Legacy System),它们不一定是标准的数据库或Java程序,例如非关系数据库等系统。JCA定义了一套扩展性强、安全的数据交互机制,解决了现有企业信息系统与EJB容器和组件的集成。这使Java EE企业应用程序能够和其他类型的系统进行通话。

6.上下文和依赖注入

上下文和依赖注入(Contexts and Dependency Injection, CDI)使得容器以类型安全的低耦合方式为EJB等组件提供一种上下文服务。它将EJB等受控组件的生命周期交由容器来管理,降低了组件之间的耦合度,大大提高了组件的重用性和可移植性。

总结

服务就是说的容器的功能,提供一些共性服务

Java EE服务技术相关推荐

  1. [JAVA EE] JPA技术基础:完成数据列表的删除

    接上一篇:[JAVA EE] JPA技术基础:完成数据列表显示 本章完成数据列表的删除 修改 UserController.java package com.example.demo.controll ...

  2. Java毕业设计_基于SSH的Java EE开发技术课程网站设计

    基于SSH的Java EE开发技术课程网站设计 基于SSH的Java EE开发技术课程网站设计mysql数据库创建语句 基于SSH的Java EE开发技术课程网站设计oracle数据库创建语句 基于S ...

  3. java ee开发技术 上海大学_上海大学计算机工程与科学学院硕士生导师刘 炜

    刘炜,男,1978年生,副研究员,中国计算机协会会员,服务计算专委会委员.2005 年5月毕业于上海大学计算机学院,获控制理论与控制工程专业博士学位.2005 年9 月至2007 年11 月,在上海大 ...

  4. 多云架构下,JAVA微服务技术选型实例解析

    微服务生态 微服务生态本质上是一种微服务架构模式的实现,包括微服务开发SDK,以及微服务基础设施. 目前比较成熟的 JAVA 微服务生态包括 servicecomb(华为), spring-cloud ...

  5. java 微服务框架对比_多云架构下,JAVA微服务技术选型实例解析

    [摘要] 本文介绍了基于开源自建和适配云厂商开发框架两种构建多云架构的思路,以及这些思路的优缺点. 微服务生态 微服务生态本质上是一种微服务架构模式的实现,包括微服务开发SDK,以及微服务基础设施. ...

  6. Java EE组件技术

    组件是Java EE应用的基本单元.Java EE 6提供的组件主要包括三类:客户端组件.Web组件和业务组件. 1.客户端组件 用户通过客户端组件与企业应用进行交互.Java EE客户端既可以是一个 ...

  7. java ee框架技术进阶式教程_《JavaEE框架技术进阶式教程》新版任务式教案

    <JavaEE框架技术进阶式教程>新版任务式教案 第一阶段 教学单元名称授课教师赵彦授课班级 入门阶段 JavaEE概述 学时教学地点 2 207多媒体 第 1单元 软件日语 091 授课 ...

  8. [JAVA EE] JPA 技术实践:完成增、删、改、查操作

    项目已上传:https://codechina.csdn.net/qq_36286039/javaee 注意本项目是包含后文JPA 查询用法内容的,若您想看只有本文内容的项目,请下载: https:/ ...

  9. [JAVA EE] JPA技术基础:完成数据列表显示

    本章完成数据列表显示功能 ORM 和 JPA ORM (Object Relation Mapping) 是对象/关系映射,它将数据库中的表 和内存中的对象建立映射关系. 对象和关系型数据是业务实体的 ...

最新文章

  1. 在Leangoo里怎么修改昵称,简称,头像?
  2. 漫画:程序教你寻找股票买入卖出的最佳时机(动态规划)
  3. [usb]usb otg和host
  4. 微信小程序_组件学习_001
  5. 那些在家啃书自学的人,最后都找到工作了吗?
  6. Python:绘图保存时出现空白图像的解决和如何保存图片
  7. 易语言源代码毁来者来了!!
  8. Madagascar中的宏定义函数--绝对值函数和符号函数
  9. vue 项目加载顺序_如何提高Vue项目首页的加载速度
  10. 我的代码被CTO说:写的代码像坨...
  11. deepin linux安装微信,Ubuntu20.04安装Deepin-wine,微信,Tim
  12. 分享116个PHP源码PHP源码,总有一款适合你
  13. navicat12.1.18破解 亲测
  14. mysql sending data 耗时_mysql sending data状态时间花费太大
  15. 邓俊辉 数据结构与算法C++版 第十三章 串 ADT
  16. [云计算学习3] Linux基础 : 使用chrony搭建时间服务器并让下游NTP同步时间
  17. 制作微信H5互动小游戏如何确认主题?
  18. 大数据可视化课程笔记 6
  19. 分布式ID之snowflake
  20. WebAPI_AutoFac(依赖注入)的简单使用

热门文章

  1. go语言学习之helloword
  2. 解决 elementUI 切换table后 el_table 固定列下方多了一条线
  3. 前端解析token中的数据_[前端基础]数据类型判定原理解析
  4. lay-verify=required 没生效_眼睛一闭一睁,20万没了!|侧翻|交通事故|半挂车|追尾...
  5. java 抽象类 模板_Java学习day21-抽象类(abstract class)和模板设计模式(TemplateMethod)...
  6. python torchvision_pip install torchvision error:安装版本为0.4.1的torch后继续安装torchvision报错...
  7. 联想电脑锁屏界面设置被组织隐藏_Word Clock数字时钟动态屏保,让你的电脑锁屏瞬间科技感十足!...
  8. 分布式和微服务_太难了!阿里三面凉透~ Spring+高并发+算法+分布式微服务等等一个都没讲不清...
  9. linux不允许将硬链接指向目录,为什么 UNIX/Linux 不允许目录硬链 【翻译】
  10. 基于virtualbox的centos7安装jdk1.8