Spring对JNDI的支持


Spring中对于JNDI的访问,提供了便捷的方法,在Spring的org.springframework.jndi包中包含了所有的类。其中提供了一下核心类:

1)JndiTemplate:它是这个包的核心类,用来简化对JNDI的操作。它提供了对于lookup、bind方法。 
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> 
    <property name="environment"> 
        <props> 
      <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop> 
            <prop key="java.naming.provider.url">jnp://localhost:1099</prop> 
            <prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop> 
        </props> 
    </property> 
</bean>

2)JndiObjectFactoryBean:looks up 一个JNDI对象,暴露在JNDI中找到的对象给其他Bean引用,例如在数据源情况下作为数据访问对象的 "dataSource" property

使用JndiObjectFactoryBean,例如 
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName"> 
        <value>java:/MySqlDS</value> 
    </property> 
</bean>

实例:

数据源的配置:

(1)配置可以访问到同一应用服务器的jndi数据源 
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName"> 
        <value>jdbc/cqccms</value> 
    </property> 
</bean>

(2)配置能访问远程jndi数据源 
方法1:直接通过JndiObjectFactoryBean的jndiEnvironment属性定义远程JNDI参数 
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
  <property name="jndiName"> 
     <value>jdbc/cqccms</value> 
  </property> 
  <property name="jndiEnvironment"> 
     <props> 
        <prop key="java.naming.factory.initial"> 
          weblogic.jndi.WLInitialContextFactory 
        </prop> 
        <prop key="java.naming.provider.url">t3://172.16.101.42:7001</prop> 
        <prop key="java.naming.security.principal">weblogic</prop> 
        <prop key="java.naming.security.credentials">weblogic</prop> 
     </props>    
   </property> 
</bean>

方法2:先定义jndiTemplate,由jndiTemplate定义远程JNDI参数

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> 
    <property name="environment"> 
        <props> 
            <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop> 
            <prop key="java.naming.provider.url">t3://172.16.101.42:7001</prop> 
            <prop key="java.naming.security.principal">weblogic</prop> 
            <prop key="java.naming.security.credentials">weblogic</prop> 
        </props> 
    </property> 
</bean>

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
  <property name="jndiName"> 
     <value>jdbc/cqccms</value> 
  </property> 
  <property name="jndiTemplate" ref="jndiTemplate" /> 
</bean>

Spring对JNDI的支持方法相关推荐

  1. Spring注解事务不支持 protect private 方法的原因

    Spring注解事务不支持 protect private 方法的原因 @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = t ...

  2. Java缓存学习之五:spring 对缓存的支持

    (注意标题,Spring对缓存的支持 这里不单单指Ehcache ) 从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管理的支持.Spring Cache ...

  3. Spring对AOP的支持

     Spring对AOP的支持<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  4. 在controller中调用指定参数给指定表单_第005课:Spring Boot 中MVC支持

    Spring Boot 的 MVC 支持主要介绍实际项目中最常用的几个注解,包括 @RestController. @RequestMapping.@PathVariable.@RequestPara ...

  5. 使用Spring Security3的四种方法概述

    使用Spring Security3的四种方法概述 那么在Spring Security3的使用中,有4种方法: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中,已经实现过, ...

  6. Spring对java模块化支持_Spring项目对JDBC的支持和基本使用

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

  7. 由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持

    由openSession.getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持 Spring和Hibernate的集成的一个要点就是对事务的支持,op ...

  8. 如何理解Spring对缓存的支持

    1.Spring缓存机制的理解 在Spring缓存机制中,包括了两个方面的缓存操作:1.缓存某个方法返回的结果:2.在某个方法执行前或后清空缓存. 下面写两个类来模拟Spring的缓存机制: pack ...

  9. Spring声明式事务配置管理方法

    /*2011年8月28日 10:03:30 by Rush  */ 环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可.添加 ...

最新文章

  1. 打开word文档提示文件未找到_word图片显示:如何打开多图文档不再卡慢
  2. Java1.5语言新特性简单总结
  3. [整理] C#调用SQLDMO.DLL时间数据库备份 / 还原。 (香神无涯) // C#实现SQLSERVER2000数据库备份还原的两种方法 (带进度条)...
  4. hdu 3863 No Gambling (不会证明,但是是对的,,)
  5. 手机关机后,就没有定位信息了
  6. 微信小程序上传的视频显示封面 我是阿里云oss的实现
  7. Pell数列(信息学奥赛一本通-T1189)
  8. 洛谷 P2097 资料分发1
  9. python 录入数据不重复_python Django批量导入不重复数据
  10. 微信今日全面开放接口
  11. 【Elasticsearch】es 7.12 Root mapping definition has unsupported parameters: _all
  12. [转]BT种子文件格式
  13. Ubuntu 16.04配置VNC进行远程桌面连接
  14. nero 刻录一张4g的服务器系统盘大概需要多长时间,刻录系统盘(如何刻录系统盘) 狸窝用户有福了:nero刻录系统盘...
  15. 华硕主板怎么刷bios
  16. 什么是IDS IPS以及IDS,IPS的区别
  17. python求三角形的角度
  18. 华为链路聚合(路由器和交换机)
  19. 去中心化云存储的前世今生 | 存储技术分享活动回顾
  20. c语言字符集的作用,1.属于C语言字符集中可显示字符的是()

热门文章

  1. ASP.NET网站性能提升的几个方法
  2. django的权限认证:登录和退出。auth模块和@login_required装饰器
  3. Scrum 项目4.0--软件工程
  4. 第五十四天 how can I 坚持
  5. 使用VirtualBox SDK之初步编译
  6. volatile 和 sig_atomic_t
  7. WEB前端 javascript、php关键字搜索函数的使用方法
  8. kotlin android获取按钮,Kotlin 实现按钮点击跳转监听事件方式
  9. native封装卡片 react_自己动手封装一个React Native多级联动
  10. QT计算机控制进程,Qt 学习之路 2(69):进程