zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    EasyDarwin开源流媒体云平台之云台ptz控制设计与实现
    ffmpeg强制使用TCP方式推流到EasyDarwin开源流媒体服务器进行直播
    开源流媒体云视频平台EasyDarwin中EasyCMS服务是如何进行命令转发和消息路由的
    开源流媒体云视频平台EasyDarwin中EasyCMS服务是如何进行命令转发和消息路由的
    EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
    EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
    vs2015编译EasyDarwin开源流媒体服务器Linux版本调研
    vs2015编译EasyDarwin开源流媒体服务器Linux版本调研
    EasyDarwin接入ffmpeg实现264转图片快照功能
    EasyDarwin接入ffmpeg实现264转图片快照功能
  • 原文地址:https://www.cnblogs.com/zqyanywn/p/7161511.html
Copyright © 2011-2022 走看看