首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java命名和目录接口(JNDI)详解

Java命名和目录接口(Java Naming and Directory Interface,JNDI)是一个由Java提供的API,主要用于在Java程序中查找和访问各种对象和服务。...尽管JNDI可以用于任何类型的Java对象,但在Java EE环境中,它主要用于查找和访问企业级服务。...JNDI的作用 JNDI的主要作用是作为一种服务定位机制,能够将用户抽象出来的服务名称映射到具体的服务实现对象。...JNDI在Java EE中的使用 让我们以Java EE应用服务器(如Tomcat、WebLogic、JBoss等)中的数据源作为例子,深入了解JNDI的使用。...数据源是数据库连接池的抽象,包含了获取数据库连接所需的所有信息。 当你在Java EE服务器中配置一个数据源时,会给它一个名字(例如,"jdbc/mydb"),然后这个数据源就会被注册到JNDI服务。

80710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    核弹级漏洞!我把log4j扒给你看!

    这篇文章,我尝试让所有技术相关的朋友都能看懂:这个注定会载入网络安全史册上的漏洞,到底是怎么一回事! log4j2 不管是什么编程语言,不管是前端后端还是客户端,对打日志都不会陌生。...JNDI 主要来看其中那个叫JNDI的东西: JNDI即Java Naming and Directory Interface(JAVA命名和目录接口),它提供一个目录系统,并将服务名称与对象关联起来...简单粗暴理解:有一个类似于字典的数据源,你可以通过JNDI接口,传一个name进去,就能获取到对象了。...那不同的数据源肯定有不同的查找方式,所以JNDI也只是一个上层封装,在它下面也支持很多种具体的数据源。 LDAP 继续把目光聚焦,咱们只看这个叫LDAP的东西。...假如某一个Java程序中,将浏览器的类型记录到了日志中: String userAgent = request.getHeader("User-Agent"); logger.info(userAgent

    73710

    4. MyBatis核心配置文件详解

    environment 讲解 environment:具体的环境配置(主要包括:事务管理器的配置 + 数据源的配置) id:给当前环境一个唯一标识,该标识用在environments的default...conn.commit(); 第二个:MANAGED:mybatis不再负责事务的管理,将事务管理交给其它的JEE(JavaEE)容器来管理。例如:spring ‍ 大小写无所谓。...dataSource作用是什么?为程序提供Connection对象。(但凡是给程序提供Connection对象的,都叫做数据源。) 数据源实际上是一套规范。...POOLED:使用mybatis自己实现的数据库连接池。 JNDI:集成其它第三方的数据库连接池。 JNDI是一套规范。谁实现了这套规范呢?...大部分的web容器都实现了JNDI规范: 例如:Tomcat、Jetty、WebLogic、WebSphere,这些服务器(容器)都实现了JNDI规范。 JNDI是:java命名目录接口。

    9910

    《Spring实战》摘录 - 19

    181 Q: #10.2.1 | JNDI是什么 A: Java命名和目录接口(Java Naming and Directory Interface,缩写JNDI),是Java的一个目录服务应用程序界面...Spring提供了三个这样的数据源类(均位于org.springframework.jdbc.datasource包中)供选择: A: DriverManagerDataSource:在每个连接请求时都会返回一个新建的连接...尽管SingleConnectionDataSource不是严格意义上的连接池数据源,但是你可以将其视为只有一个连接的池 187 Q: #10.2.3-2 | 推荐使用数据库连接池的原因 A: 因为SingleConnectionDataSource...有且只有一个数据库连接,所以不适合用于多线程的应用程序,最好只在测试的时候使用。...鉴于以上的这些限制,我强烈建议应该使用数据源连接池。

    40720

    Java数据库连接池--C3P0和JDNI.

    前言: 上一篇文章中讲了DBCP的用法以及实现原理, 这一篇再来说下C3P0和JDNI的用法.  1.1、C3P0数据源   C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3...and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.naming包, 这 套API的主要作用在于:它可以把Java对象放在一个容器中(JNDI容器...Tomcat服务器创建的数据源是以JNDI资源的形式发布的,所以说在Tomat服务器中配置一个数据源实际上就是在配置一个JNDI资源,通过查看Tomcat文档,我们知道使用如下的方式配置tomcat服务器的数据源...,我们的应用程序又该怎么样得到这个数据源呢,Tomcat服务器创建好数据源之后是以JNDI的形式绑定到一个JNDI容器中的,我们可以把JNDI想象成一个大大的容器,我们可以往这个容器中存放一些对象,一些资源...4、在获取数据库连接的工具类(如jdbcUtils)的静态代码块中获取JNDI容器中的数据源 1 public class JdbcUtils_JNDI { 2 3 private

    1.1K130

    Tomcat配置JNDI数据源

    本文将介绍Tomcat配置JNDI数据源的方法,主要分为配置局部数据源(仅供单个应用使用)和全局数据源(所有用该Tomcat的应用都可以使用) 一、思考 从我们学习Web开发以来,我们都是通过程序代码来实现数据库的访问的...从一开始直接将数据库配置信息写在代码中,到后来将配置信息抽取出来写在了Properties文件中,我们访问数据库的代码更加精简。...而通过JNDI方式访问数据库则更为直接,JNDI连接数据库的方式直接将数据库信息放在Tomcat中,而项目代码里直接通过JNDI技术就可以得到数据源。...他们之间通过定义在Tomcat中的数据源名联系起来。 应该说,JNDI方式配置数据源将项目代码与实施部署分离开来了,有利于开发人员和实施部署人员各司其职。...三、测试 1、第三步所写的任一种方式配置好数据源。 2、配置完数据源之后,你还要把对应的数据库驱动文件放在项目的lib目录或者tomcat的lib目录下。

    2.1K90

    应用服务器到底是个啥?| 从开发角度看应用架构2:对Java EE应用进行打包和部署!

    Java命名和目录接口(JNDI)是目录服务(用于查找资源)的Java API,允许组件通过逻辑名称发现和查找对象。 资源是一个逻辑对象,可以被Java EE应用程序中的组件查找和使用。...JNDI资源不仅限于JDBC数据源。可以配置多种类型的资源,例如JMS ConnectionFactory对象,消息传递队列和主题,电子邮件服务器,线程池等。...这使得松散耦合的架构成为可能,客户端不需要知道被调用对象的所有底层实现细节。 在应用程序服务器级别配置所需的JNDI资源绑定后,可以使用@Resource注释将资源注入到需要资源的应用程序中。...我们可以将java:jboss / datasources / ExampleDS数据源注入到应用程序中,如下所示: public class TestDS { @Resource(name="...应用程序服务器维护一个JNDI资源绑定列表。 应用程序需要的资源(例如邮件,JDBC数据源和JMS连接工厂和队列)绑定到各自名称空间下的唯一可识别名称。

    3.3K20

    Data Source与数据库连接池简介 JDBC简介(八)

    Data Source将驱动程序的概念淡化了,突出驱动程序能够提供的服务与能力,将驱动程序提供的服务与能力抽象为Data Source数据源这一角色。 ?...JNDI是类似这样一个东西: 一个哈希表,类型为 JNDI的两个最主要操作:bind和lookup。...这是一个工厂对象,用于提供到此 DataSource 对象所表示的物理数据源的连接。...DataSource 对象的属性在必要时可以修改。 例如,如果将数据源移动到另一个服务器,则可更改与服务器相关的属性。其优点在于,由于可以更改数据源的属性,所以任何访问该数据源的代码都无需更改。...API DataSource只有两个方法(确切的说是一个方法的两个重载版本),用于建立与此 DataSource 对象所表示的数据源的连接。

    1.3K10

    简单把 Spring 容器分为了两大类!

    那我们不妨想一想,容器的核心职责是什么?我们是否真的需要这么多容器? 其实,Spring 中,跟 Bean 最核心的功能相关的容器,只有三个!接下来我们来分析一下。 1....getType(String, boolean):这个作用也是等价于上面这个方法,不同的是,多了一个 boolean 类型的参数,表示在获取类型的时候,是否提前将 FactoryBean 初始化,在之前的文章...JNDI 是 Java 平台提供的一种标准 API,用于访问命名和目录服务。...SimpleJndiBeanFactory 的主要特点和功能包括: JNDI 支持:SimpleJndiBeanFactory 支持使用 JNDI 技术来管理和访问 Bean。...ApplicationContext 如果前面所说的三个容器(BeanFactory)是一个发动机,那么 ApplicationContext 就是一辆汽车,回顾本文一开始的类结构图,其实除了前面三个

    34020

    MyBatis核心配置文件之environment

    MyBatis是一种优秀的ORM框架,通过简单的XML或注解方式,将Java对象映射到数据库表中。而MyBatis的核心配置文件就是一个XML文件,其中environment元素是其中重要的一部分。...一个环境包含一个数据源和一个事务管理器。数据源用于连接数据库,而事务管理器用于管理事务。...此外,dataSource元素还可以包含多个property元素,用于设置数据源的相关属性。例如,在上述示例中,设置了数据源的驱动、URL、用户名和密码。...默认环境的ID应该与default属性值相同。数据源的类型可以选择多种,例如:UNPOOLED、POOLED、JNDI等。不同类型的数据源具有不同的特点,可以根据实际需要进行选择。...当使用JNDI数据源时,dataSource元素可以省略。需要在MyBatis配置文件中配置一个属性,指定JNDI数据源的JNDI名称。

    43920

    Spring速查手册(三)——Spring+JDBC

    数据访问模板 Spring的数据访问采用了模板方法模式,模板方法定义了数据处理过程的主要框架,某些特定的步骤采用抽象函数的方式让子类去实现。...通过JDBC驱动程序定义的数据源; 2. 通过JNDI定义的数据源; 3. 通过连接池定义的数据源。...使用JNDI数据源 JNDI是 Java 命名与目录接口(Java Naming and Directory Interface)。...JNDI配置数据源就是将数据库的连接信息配置在Tomcat等Web容器中,这样数据库的连接信息完全可以在应用程序之外进行管理,当数据源发生变化时,就不需要修改程序代码。...创建NamedParamterJdbcTemplate的bean对象,并注入dataSource 将NamedParamterJdbcTemplate的bean对象注入给DAO的成员变量jdbcOptions

    84860

    Spring入门

    Spring入门 设计层面框架,解决业务逻辑层与其他层面的松耦问题,spring主要由7个模块组成,分别是: 1.SpringCore:Core封装包是框架的最基础部分,提供IOC(利用Java反射机制...2.Spring Context:构建于Core封装包基础的Context封装包,提供了一种框架式的对象访问方法,比如JNDI(JAVA命名系统接口)注册器。...Spring数据源: 1.J2EE中JNDI 2.Spring的数据源实现类:DriverManagerDatasource、SimpleDriverDatasource、SingleConnectionDatasource...3.第三方数据源:C3P0数据源、apacheDBCP数据源 4.嵌入式数据源(用于测试) Spring注解 (定义Bean和自动注入) 1.自动注入: @Resources 默认是byname @...annotation-config> Spring 事务 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给

    22420

    Spring JDBC-Spring对DAO的支持

    概述 Spring的DAO理念 统一的异常体系 统一的数据访问模板 使用模板和回调机制 模板类 数据源 配置数据源 DBCP数据源 C3P0数据源 获取JNDI数据源 Spring的数据源实现类...变化的部分通过回调接口开放出来,用于定义数据访问和结果返回的操作。...所有的支持类都是abstract,其目的是希望被继承使用,而非直接使用 ---- 数据源 在Spring中,不但可以通过JNDI获取应用服务器的数据源,也可以在Spring容器中配置数据源。...应用服务器的数据源使用JNDI开放调用者使用,Spring为此专门提供了引用JNDI数据源的JndiObjectFactoryBean,我们来看一个简单的配置 id="dataSource" class...在实际部署时,我们可能会直接采用应用服 务器本身提供的数据源, 这时,则可以通过JndiObjectFactoryBean或jee命名空间引用JNDI中的数据源

    48340

    MyBatis架构分析

    的执行器,用于执行增删改查操作 SQL解析   MyBatis支持两种 SQL 解析的方式,一种 xml、一种是注解;两种方式对于一些基础的 CRUD 区别不大,使用注解来映射简单语句会使代码显得更加简洁...因此,如果你需要做一些很复杂的操作,最好用 XML来映射语句 框架支撑层 这部分主要是框架抽取出来的通用组件包括数据源管理、事务管理、配置加载和缓存处理;为上层的数据处理层提供最基础的支撑 数据源管理...JNDI UNPOOLED-这个数据源的实现会每次请求时打开和关闭连接 POOLED-这种数据源的实现利用"池"的概念,将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间...JNDI-这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI上下文的数据源引用。...小结: 这节内容主要从整体架构上分析了 Mybatis的架构设计,实际上是对JDBC的做了一些抽取和封装,主要分成了三层 API接口层 数据处理层 框架通用模块

    12310

    JDBC面试题都在这里

    CallableStatement适用于执行存储过程。 JDBC中大数据量的分页解决方法? JDBC中大数据量的分页解决方法?...JDBC的DataSource是什么,有什么好处 JDBC的DataSource是什么,有什么好处 DataSource即数据源,它是定义在javax.sql中的一个接口,跟DriverManager相比...如果你的SQL URL串格式不正确的话,就会抛出这样的异常。不管是使用DriverManager还是JNDI数据源来创建连接都有可能抛出这种异常。它的异常栈看起来会像下面这样。...JDBC的RowSet是什么,有哪些不同的RowSet? JDBC的RowSet是什么,有哪些不同的RowSet? RowSet用于存储查询的数据结果,和ResultSet相比,它更具灵活性。...数据库隔离级别越高性能越差,确保你的数据库连接设置的隔离级别是最优的。 如果在WEB程序中创建数据库连接,最好通过JNDI使用JDBC的数据源,这样可以对连接进行重用。

    1.7K40
    领券