• 代码中jndi数据源的支持


    项目中基本都使用Spring框架,支持jndi还是很简单的,只需在spring配置文件中加入

    		<!-- 使用jndi配置数据源 -->
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">  
            <property name="jndiName">  
                <value>java:comp/env/jndi数据源名称</value>  
            </property>  
        </bean>
    

     在本地开发中,一般使用tomcat,不会启动weblogic,所以,要配置context.xml以支持jndi

    路径  /WebContent/META-INF/context.xml

    内容基本如下

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    	<Resource
    	 name="jndi数据源名称"
    	 auth="Container"
    	 type="javax.sql.DataSource"
    	 username="xx"
    	 password="xx"
    	 url="jdbc:oracle:thin:@10.10.68.248:1521:orcl"
    	 driverClassName="oracle.jdbc.driver.OracleDriver"
    	 maxIdle="10"
    	 maxWait="1000"
    	 maxActive="20"
    	/>
    </Context>
    

     web.xml可以配置

      <!-- 
    	  JNDI配置的资源引用:
    	  • res-ref-name:表示引用资源的名称
    	  • res-type:此资源对应的类型为javax.sql.DataSource
    	  • res-auth:容器授权管理
    	   -->
    	   <!--Oracle数据库JNDI数据源引用 -->
    	  <resource-ref>
    	      <description>Oracle DB Connection</description>
    	      <res-ref-name>jndi数据源名称</res-ref-name>
    	      <res-type>javax.sql.DataSource</res-type>
    	      <res-auth>Container</res-auth>
    	 </resource-ref>
    

     项目中如果不使用spring框架,代码需要兼容驱动管理与jndi的连接的方式,以提高健壮性,部分伪代码

        public Connection getConnection()
            throws SQLException
        {
            if(isJndi)
                return getJndiConnection();
            else
                return getDriverConnection();
        }
    
       private void initJndiConnection()
            throws NamingException
        {
            Context ctx = new InitialContext();
            ds = (DataSource)ctx.lookup(config.getJndi());
        }
    
        public Connection getJndiConnection()
            throws SQLException
        {
                return ds.getConnection();
        }
    
    private Connection getDriverConnection()
            throws SQLException
        {
                    Connection conn = DriverManager.getConnection(config.getUrl(), config.getUserName(), getPassword(config));
            return conn;
        }
    
  • 相关阅读:
    文本聚类的一些概念
    网络安全概论——身份认证
    网络安全概论——入侵检测系统IDS
    网络安全概论——防火墙原理与设计
    网络安全概论——网络加密与密钥管理
    网络安全概论——数字证书与公钥基础设施PKI
    网络安全概论——TCP/IP协议族的安全性
    网络安全概论——网络安全基础
    笔记本电脑升级内存
    geopandas安装踩坑
  • 原文地址:https://www.cnblogs.com/whytohow/p/5675920.html
Copyright © 2020-2023  润新知