编程语言
首页 > 编程语言> > 2022/2/2 Java开发之Java web编程 第五章 使用三层架构实现业务处理

2022/2/2 Java开发之Java web编程 第五章 使用三层架构实现业务处理

作者:互联网

1.理解JNDI

        1.1 JNDI全称:Java Naming and Directory Interface,Java命名和目录接口。        

        1.2 JNDI的作用与优点

JNDI 简单地理解为是一种将对象和名字绑定的技术,即指定一个资源名称,将该称与某一资源或服务相关联,当需要访问其他组件和资源时,就需要使用 JNDI 服务进行定位. 应程序可以通过名字获取对应的对象或服务;

        1.3 用法

分析:Tomcat 根目录\conf\context.xml 文件为全局的上下文配置文件,所有的 Web 应用有效。所将要发布的信息配置在此文件中,再通过 JNDI 来查找信息;

        1. 在 Tomcat 中发布一条信息,修改context . xml 文件,代码如下:

```
 <Context>

    <Environment name="tjndi" value="hello JNDI" type="java.lang.String" />

  </Context>
```

>< EnviTonment >元素用于配置命名的值, 所配置的值作为环境条目资源, 对整个 Web 应用可见。它包含的属性:name、type、value;

        2. 编写 JSP 代码 , 通过 JNDI 访问环境条目,代码如下:

  <body>

      <%@ page import="javax.naming.*" %>

      <%

                   //javax.naming.Context提供了查找JNDI Resource的接口

                  Context ctx = new InitialContext();    //初始化Context对象

                   //java:comp/env/为前缀

                   String testjndi = (String) ctx.lookup("java:comp/env/tjndi");  //调用lookup()方法

                   out.print("test jndi:" + testjndi);

      %>

    </body>

使用JNDI的步骤

  1. 配置资源;

  2. 通过 Context 的 lookup()方法查找资源;

使用application 应该也能满足上述需求,但是 application 对象只能个 Web 应用程序中使用;使用 JNDI 发布的信息是对服务器上所有的 Web 应用程序都可见的,JNDI不只完成这种简单的需求,它还提供了对其他资源的引用;

2.数据库连接池

        2.1 连接池(Connection Pool)

数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。

        2.2 数据库连接池:数据库连接池负责分配、管理和释放数据库连接;

        2.3 连接池原理

数据库连接池在初始化时将创建一定数量的数椐库连并放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接否被使用,连接池都将确保至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求被加入等待队列中;

        2.4 连接池是如何管理连接的?

对于连接的管理可使用空闲池,即把巳经创建但尚未分配出去的连接存放到一个空闲池中;每当用户请求一个连接时,系统首先检查空闲池内有没有空闲连接,如果有就分配一个连接给用户;如果没有则检查当前连接池是否达到连接池所允许的最大连接数。如果没有达到,就新建一个连接。如杲已经达到,就等待一定的间。如果在等待的时间内有连接被释放出来,就可以把这个连接分配给等待的用户;如果等待时间超过预定时间,则返回空值 (null),系统对已经分配出去正在使用的连接只做计数,当使用完后再返还给空闲池;

        2.5 数据库连接池技术带来的优势

  1. 资源重用
  2. 更快的系统响应速度
  3. 据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。
  4. 统一的连接管理,避免数据库连接泄漏

标签:web,Java,数据库,JNDI,空闲,2022,连接,连接池
来源: https://blog.csdn.net/Abcdzzr/article/details/122768875