Springjndi数据源配置⽅法详解本⽂实例为⼤家分享了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:@x: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="hibernate3.annotation.AnnotationSessionFactoryBean"> <!-- 配置Hibernate,⾃动填充数据的插⼊、更新时间 -->
<property name="entityInterceptor" ref="entityInterceptor" />
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<value>
springboot aop<!-- 设置数据库⽅⾔ -->
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.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="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.sinosoft.service..*.*(..))" advice-ref="transactionAdvice" />
</aop:config>
<!-- 配置freemarkerManager -->
<bean id="freemarkerManager" class="cn.sinosoft.util.FTLManager" />
<!-- 配置JCaptcha验证码功能 -->
<bean id="captchaService" class="aptcha.service.image.DefaultManageableImageCaptchaService"> <property name="captchaEngine">
<bean class="cn.sinosoftmon.JCaptchaEngine" />
</property>
<!-- 验证码过期时间 -->
<property name="minGuarantedStorageDelayInSeconds" value="600" />
</bean>
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论