什么是JNDI,SPI,CCI,LDAP和JCA?

JNDI代表Java命名和目录接口 。 它是用于提供对目录服务(即带有对象的服务映射名称(字符串),对远程对象或简单数据的引用)的访问的API。 这就是所谓的
约束力 。 绑定集称为上下文 。 应用程序使用JNDI接口访问资源。

简而言之,它就像一个带有String键和代表Web资源的Object值的hashmap。 通常,这些资源是根据目录服务中的层次结构组织的。 级别用分隔符定义(例如对于DNS,“。”,对于LDAP,例如“。”)。 这是一个命名约定 。 每个上下文都有其命名约定。

SPI代表服务提供商接口 。 换句话说,这些是服务的API。 JNDI指定一个SPI来实现目录服务。 存储在目录中的对象可以具有属性(id和value)。 可以对这些属性执行CRUD操作。 如果目录允许,也可以根据对象的属性搜索对象,而不是提供名称。 用户应用程序提供的信息称为搜索过滤器

JNDI解决了哪些问题?

没有JNDI,远程资源的位置或访问信息将必须在应用程序中进行硬编码或在配置中可用。 维护此信息非常繁琐且容易出错。

例如,如果资源已使用另一IP地址重定位在另一台服务器上,则必须使用此新信息来更新使用此资源的所有应用程序。 使用JNDI,这不是必需的。 仅需要更新相应的资源绑定。 应用程序仍然可以使用其名称访问它,并且重定位是透明的。

另一个常见用途是将应用程序从开发环境移至测试环境,最后移至生产环境。 在每个阶段,可能要使用不同的数据库进行开发,测试和生产。 在每种情况下,可以对每个数据库进行不同的绑定。 该应用程序不需要加注。

什么是LDAP?

LDAP代表轻型目录应用协议。 它通常在JNDI中用作目录服务。 今天,公司将LDAP服务器设置为专用于响应JNDI请求。 通常的用途是维护公司员工的名单,以及他们的电子邮件和访问其他应用程序的凭据。

通过集中这些信息,每个应用程序不必在其自己的数据库中存储员工信息的多个副本,这更易于维护,并且不易出错和出现不一致。

JCA和CCI呢?

JCA代表Java EE连接器体系结构。 它是一种Java技术,通过向应用程序服务器及其应用程序提供连接,从而帮助它们连接到其他信息系统。 JCA为连接器服务定义了自己的SPI。 CCI代表通用客户端接口 。 它被定义为JCA的一部分。 用户应用程序用来访问JCA连接服务的API。

JCA帮助集成单独开发的信息系统。 通常,用户应用程序可以使用JCA来连接到这些数据库(或信息系统),而不是使用JDBC来访问数据库(或多或少等同于硬编码配置)。 JCA实例可以在JDNI目录中注册,也可以由用户应用程序检索。

Web应用程序呢?

通常,Web应用程序在称为应用程序服务器的容器中运行。 Web应用程序可以创建自己的JNDI服务来存储对象,但是它们也可以使用相应的名称从容器本身检索这些对象。 在这种情况下,资源(通常是数据库)是在容器级别配置的。

参考: 什么是JNDI,SPI,CCI,LDAP和JCA? 从我们的JCG合作伙伴 Jerome Versrynge在技术说明博客中获得。

翻译自: https://www.javacodegeeks.com/2013/02/what-is-jndi-spi-cci-ldap-and-jca.html

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

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

相关文章

android studio gradle 学习,学习Android Studio里的Gradle

一直听说Gradle很强大,只是偶尔用Android Studio创建Demo的时候看到他一次,今天抽个时间完整记录一下。1.gradle位置Android Studio项目创建好之后,默认有3个gradle文件,分别位于:/settings.gradle/build.gradle/app/b…

接口耗时打印并统计

1.可以利用Tomcat的access-log日志&#xff0c;让其打印出http请求的每次耗时。可以在 config/server.xml里Host标签下配置tomcat访问日志格式 <Valve className"org.apache.catalina.valves.AccessLogValve" directory"logs" prefix&quo…

js内存

js在定义变量时完成了内存的分配 js具有自动垃圾回收机制&#xff0c;垃圾回收器会每隔固定的一段时间就执行一次释放操作&#xff0c;即找出那些不再继续使用的值&#xff0c;释放其占用的内存 js中最常用的是通过标记清除的算法来找到哪些对象是不再继续使用的&#xff0c;因…

halcon 图像差分_Halcon编程-基于纹理的mara检测

表面瑕疵检测是机器视觉领域非常重要的一个应用。机器视觉是集光学、机电和计算机三个领域的一门不算新的技术。但目前表面瑕疵检测在学界主要是计算机专业或者控制专业瞄准图像处理方向在做&#xff0c;而视觉光学系统这一块主要是光学工程专业在做。很少有研究者把这三块都结…

Apache Camel入门

在先前的博文中&#xff0c;我们了解了企业集成模式&#xff08;EIP&#xff09;。 现在&#xff0c;在这篇文章中&#xff0c;我们将研究实现这些模式的Apache Camel框架。 关于骆驼&#xff1a; Apache Camel是一个开放源代码项目&#xff0c;已有将近5年的历史&#xff0c;…

css 写打印样式问题

&#xff08;1&#xff09;背景颜色打印不出来问题解决方法 background样式要加上 !important&#xff1b;color样式要加上 !important&#xff1b;-webkit-print-color-adjust: exact;然后记得浏览器打印设置里面要在“打印背景图形”前面打勾。 -webkit-print-color-adjust:…

android studio smssdk,SMSSDK for Android 配置

1.集成之前先要申请Mob的appkey与appsecret2.在Mob官网下载最新SDK&#xff0c;解压后会看到以下目录结构&#xff1a;SMSSDK下存放的是短信SDK的全部内容。3.在android studio中加入SMS的第三方库AS版本的SMSSDK目录下包含以下内容&#xff1a;MobCommons.jar&#xff1a;Mob …

linux后台不挂断运行 nohup命令

//后台常在 退出终端仍然运行 nohup python pyredis.py & nohup输出重定向到my.log nohup command > my.log 2>&1 &转载于:https://www.cnblogs.com/plxm/p/8136833.html

Ubuntu 16.04安装微信

微信没有出Linux的版本&#xff0c;但是可以通过以下方式解决&#xff1a; 1、使用网页版&#xff0c;除了没有公众号之后&#xff0c;一切都没问题&#xff0c;包括传文件等。 网页登录地址&#xff1a;https://wx.qq.com/ 2、使用第三方版本&#xff0c;只不过这个是桌面应用…

navision系统和sap区别_SAP那些事-实战篇-89-浅谈金税接口方案

以前金税接口这块一直是销售顾问在做&#xff0c;虽然和财务相关&#xff0c;也没有怎么关注。这次项目把金税接口分到了财务模块&#xff0c;结果遇到了一些问题&#xff0c;趁此机会把这块总结一下方案&#xff0c;供各位看官参考。方案1&#xff1a; 文本方案&#xff0c;这…

不变性的来龙去脉

因此&#xff0c;在我的第一篇文章中&#xff0c;我谈到了一些构建器模式&#xff0c;并提到了一个非常强大但却被忽视的概念&#xff1a;不变性。 什么是不可变类&#xff1f; 这只是一个其实例无法修改的类。 类属性的每个值都在其声明或其构造函数中设置&#xff0c;并在对…

JavaScript总结(3)

第3章 获取用户的输入 &#xff1c;script&#xff1e;10 intAprompt("请输入第一个数字","");11 intBprompt("请输入第二个数字",27);默认是2712 document.write("你输入的第一个数字是"intA);13 document.write("&#xff1c;…

css书写规范

在书写css样式的时候总是无意中就写乱了&#xff0c;无论是命名或者是样式的书写顺序&#xff0c;这里做一个总结&#xff0c;提醒自己在书写css的时候时刻注意&#xff0c;大家可以参考哈。 1. 样式属性顺序 单个样式规则下的属性在书写时&#xff0c;应按功能进行分组&…

android 协程,关于android:Kotlin协程实现原理SuspendCoroutineContext

明天咱们来聊聊Kotlin的协程Coroutine。如果你还没有接触过协程&#xff0c;举荐你先浏览这篇入门级文章What? 你还不晓得Kotlin Coroutine?如果你曾经接触过协程&#xff0c;置信你都有过以下几个疑难&#xff1a;协程到底是个什么货色&#xff1f;协程的suspend有什么作用&…

清空easyui checkbox选中项

$(#dg).datagrid(unselectAll);转载于:https://www.cnblogs.com/douhuan/p/7116744.html

python 编辑excel需要什么包_Python 中操作EXCEL表格的包

今天&#xff0c;马云爸爸又来贡献金句了&#xff0c;比王健林公公一亿一个小目标还高&#xff0c;“一个月挣一二十个亿很难受&#xff01;&#xff01;&#xff01;”&#xff0c;作为在传统企业主要为电商部门提供数据分析的数据分析师&#xff0c;体验太深刻了。双11前后&a…

用Java处理大文件

最近&#xff0c;我不得不处理一组包含逐笔历史汇率市场数据的文件&#xff0c;并很快意识到使用传统的InputStream都无法将它们读取到内存中&#xff0c;因为每个文件的大小都超过4 GB。 Emacs甚至无法打开它们。 在这种特殊情况下&#xff0c;我可以编写一个简单的bash脚本&…

java IO(一):File类

1.File类简介 File类位于java.io包中。它面向文件层次级别操作、查看文件&#xff0c;而字节流、字符流操作数据时显然比之更底层。 学习File类包括以下几个重点&#xff1a;文件路径、文件分隔符、创建文件(目录)、删除文件(目录)、查看文件内容(输出目录内文件)、判断文件(是…

android listview 开发,android开发之ListView实现

今天又初步学习了一下ListView控件&#xff0c;看看效果如下&#xff1a;LisViewActivity.java源码&#xff1a;package com.jinhoward.UI_listview;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.os.Bundl…

input ios问题 小程序_微信小程序开发常见问题汇总

原标题&#xff1a;微信小程序开发常见问题汇总1、域名必须是https非https的域名不被微信小程序允许。2、input组件placeholder字体颜色卸载placeholder-class里面的color并不生效&#xff0c;需要写在placeholder-style里面就可以了。3、wx.navigateTo无法跳转到带tabbar的页面…