温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在Spring框架中配置 jndi数据源方法详解

发布时间:2020-11-26 16:23:50 来源:亿速云 阅读:463 作者:Leah 栏目:编程语言

本篇文章为大家展示了如何在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框架中配置 jndi数据源方法详解,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI