Spring jndi数据源配置方法详解

 更新时间:2017年07月13日 17:25:42   作者:蜡笔o小新  
这篇文章主要为大家详细介绍了Spring jndi数据源的配置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下解

本文实例为大家分享了Spring jndi数据源配置代码,供大家参考,具体内容如下

xml配置:

<bean id="dataSource"
     class="org.springframework.jdbc.datasource.DriverManagerDataSource">
     <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl" />
    <property name="username" value="cba" />
     <property name="password" value="***" />
   </bean>

在weblogic/jboss中配置好JNDI数据源后,上述节点改为:

 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName">
       <value>java:/ssoDS</value>
     </property>
   </bean>


其中:第3行的java:/ssoDS即为web容器中配置好的jndi数据源名称

其它地方不用任何修改,使用示例如下:

<beans:bean id="userDetailsDao" class="infosky.ckg.sso.dao.impl.UserDetailsDaoImpl">
    <beans:property name="dataSource" ref="dataSource" />
     <!-- 登录错误尝试次数 -->
     <beans:property name="maxAttempts" value="5" />
</beans:bean> 

在websphere 下的配置,参考一下

<!-- 连接池数据源配置 -->
  <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName">
   <value>us_edbev</value>
  </property>
 </bean>
 <!-- end 连接池数据源配置 -->
 
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <!-- 配置Hibernate拦截器,自动填充数据的插入、更新时间 -->
    <property name="entityInterceptor" ref="entityInterceptor" />
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
      <value>
        <!-- 设置数据库方言 -->
        hibernate.dialect=${hibernate.dialect}
        <!-- 设置自动创建|更新|验证数据库表结构
        hibernate.hbm2ddl.auto=update
         -->
        <!-- 输出SQL语句到控制台 -->
        hibernate.show_sql=true
        <!-- 格式化输出到控制台的SQL语句 -->
        hibernate.format_sql=${hibernate.format_sql}
        <!-- 是否开启二级缓存 -->
        hibernate.cache.use_second_level_cache=false
        <!-- 配置二级缓存产品 -->
        hibernate.cache.provider_class=org.hibernate.cache.OSCacheProvider
        <!-- 是否开启查询缓存 -->
        hibernate.cache.use_query_cache=false
        <!-- 数据库批量查询数 -->
        hibernate.jdbc.fetch_size=50
        <!-- 数据库批量更新数 -->
        hibernate.jdbc.batch_size=30
        hibernate.autoReconnect=true 
      </value>
    </property>

    <property name="annotatedClasses">
      <list>
      .....
        
      </list>
    </property>
  </bean>

  <!-- 缓存配置 -->
<!--  <oscache:config configLocation="classpath:oscache.properties" id="cacheProvider" />-->
<!--  <oscache:annotations providerId="cacheProvider">-->
<!--    <oscache:caching id="caching" cronExpression="0 1 * * *" refreshPeriod="86400" />-->
<!--    <oscache:flushing id="flushing" />-->
<!--  </oscache:annotations>-->
  
  <bean id="cacheManager" class="org.springmodules.cache.provider.oscache.OsCacheManagerFactoryBean">
    <property name="configLocation" value="classpath:oscache.properties" />
  </bean>
  
  <!-- 设置需要进行Spring注解扫描的类包 -->
  <context:component-scan base-package="cn.com.sinosoft" />
  <context:component-scan base-package="com.sinosoft" />

  <!-- 使用AspectJ方式配置AOP -->
  <aop:aspectj-autoproxy proxy-target-class="true" />
  <aop:config proxy-target-class="true" />

  <!-- 使用注解方式定义事务 -->
  <tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />

  <!-- 配置事务管理器 -->
  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
  </bean>

  <!-- 配置事务传播特性 -->
  <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
    <tx:attributes>
      <tx:method name="save*" propagation="REQUIRED" />
      <tx:method name="delete*" propagation="REQUIRED" />
      <tx:method name="update*" propagation="REQUIRED" />
      <tx:method name="get*" read-only="true" />
      <tx:method name="load*" read-only="true" />
      <tx:method name="find*" read-only="true" />
      <tx:method name="*" read-only="true" />
    </tx:attributes>
  </tx:advice>

  <!-- 配置哪些类的哪些方法参与事务 -->
  <aop:config>
    <aop:advisor pointcut="execution(* cn.com.sinosoft.service..*.*(..))" advice-ref="transactionAdvice" />
  </aop:config>

  <!-- 配置freemarkerManager -->
  <bean id="freemarkerManager" class="cn.com.sinosoft.util.FTLManager" />

  <!-- 配置JCaptcha验证码功能 -->
  <bean id="captchaService" class="com.octo.captcha.service.image.DefaultManageableImageCaptchaService">
    <property name="captchaEngine">
      <bean class="cn.com.sinosoft.common.JCaptchaEngine" />
    </property>
    <!-- 验证码过期时间 -->
    <property name="minGuarantedStorageDelayInSeconds" value="600" />
  </bean>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring Boot RestTemplate提交表单数据的三种方法

    Spring Boot RestTemplate提交表单数据的三种方法

    本篇文章主要介绍了Spring Boot RestTemplate提交表单数据的三种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java设计模式之桥模式(Bridge模式)介绍

    Java设计模式之桥模式(Bridge模式)介绍

    这篇文章主要介绍了Java设计模式之桥模式(Bridge模式)介绍,本文讲解了为什么使用桥模式、如何实现桥模式、Bridge模式在EJB中的应用等内容,需要的朋友可以参考下
    2015-03-03
  • SpringBoot使用FreeMarker模板发送邮件

    SpringBoot使用FreeMarker模板发送邮件

    这篇文章主要为大家详细介绍了SpringBoot使用FreeMarker模板发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • 详解如何使用Java编写图形化的窗口

    详解如何使用Java编写图形化的窗口

    这篇文章主要介绍了如何使用Java编写图形化的窗口,是Java的本地GUI软件开发的基础,需要的朋友可以参考下
    2015-10-10
  • 详解Mybatis是如何解析配置文件的

    详解Mybatis是如何解析配置文件的

    这篇文章主要介绍了详解Mybatis是如何解析配置文件的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Java排序之Comparable和Comparator比较器详解

    Java排序之Comparable和Comparator比较器详解

    这篇文章主要介绍了Java排序之Comparable和Comparator比较器详解,Comparable<T>是内部比较器,Comparator<T>是外部比较器,最推荐使用Comparator<T>接口排序,Comparator提供静态方法很方便,推荐使用,需要的朋友可以参考下
    2024-01-01
  • 一文详解MVCC的执行原理

    一文详解MVCC的执行原理

    MVCC是一种并发控制机制,用于解决数据库并发访问中,数据一致性问题,它通过在读写操作期间保存多个数据版本,以提供并发事务间的隔离性,本文将和大家简单聊聊MVCC的执行原理,需要的朋友可以参考下
    2023-12-12
  • Java Stax解析XML示例

    Java Stax解析XML示例

    这篇文章主要介绍了Java Stax解析XML示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-09-09
  • Java实现自定义Excel数据排序的方法详解

    Java实现自定义Excel数据排序的方法详解

    通常,我们可以在Excel中对指定列数据执行升序或者降序排序,在需要自定义排序情况下,我们也可以自行根据排序需要编辑数据排列顺序。本文将通过Java应用程序来实现如何自定义排序,需要的可以参考一下
    2022-09-09
  • Java类加载初始化的过程及顺序

    Java类加载初始化的过程及顺序

    今天小编就为大家分享一篇关于Java类加载初始化的过程及顺序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12

最新评论