mongoDB(spring 部分配置)

<!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 -->

<mongo:mongo id="mongo" replica-set="${mongo.hostport}">

<mongo:options

connections-per-host="${mongo.connectionsPerHost}"

threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"

connect-timeout="${mongo.connectTimeout}"

max-wait-time="${mongo.maxWaitTime}"

auto-connect-retry="${mongo.autoConnectRetry}"

socket-keep-alive="${mongo.socketKeepAlive}"

socket-timeout="${mongo.socketTimeout}"

slave-ok="${mongo.slaveOk}"

write-number="1"

write-timeout="0"

write-fsync="true"

/>

</mongo:mongo>

<!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建

mongo-ref="mongo" 与<mongo:mongo id="mongo" 相依赖

-->

<mongo:db-factory dbname="Data" mongo-ref="mongo"/>

<!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成   -->

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">

<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />

</bean>

#Mongodb 一  Setting

mongo.hostport=127.0.0.1:27017

mongo.connectionsPerHost=8

mongo.threadsAllowedToBlockForConnectionMultiplier=4

#连接超时时间

mongo.connectTimeout=1000

#等待时间

mongo.maxWaitTime=1500

mongo.autoConnectRetry=true

mongo.socketKeepAlive=true

#Socket超时时间

mongo.socketTimeout=1500

mongo.slaveOk=true

MySql(采用Proxool连接池技术)



Proxool是一种Java数据库连接池技术。

proxool-0.9.1.jar

proxool-cglib-0.9.1.jar

第一步:

在web.xml中调用对应的applicationContext-proxool.xml

例如:web.xml中的(*为通配符,可以查询到applicationContext-proxool.xml)

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:applicationContext*.xml</param-value>

</context-param>

第二步:

在applicationContext-proxool.xml中写连接池

<bean id="dataSourceTarget" class="org.logicalcobwebs.proxool.ProxoolDataSource">

<property name="driver" value="${jdbc.driverClassName}" />

<property name="driverUrl" value="${jdbc.url}"></property>

<property name="user" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

<property name="alias" value="site_ds" />

<!-- 最少保持的空闲连接数 -->

<property name="prototypeCount" value="${proxool.prototypeCount}" />

<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由simultaneousBuildThrottle决定 -->

<property name="maximumConnectionCount" value="${proxool.maximumConnectionCount}" />

<!-- 最小连接数 -->

<property name="minimumConnectionCount" value="${proxool.minimumConnectionCount}" />

<!-- 一个线程持有一个连接的最长时间,而不管这个连接是否处于 active 状态, 并且如果线程的持有时间超过这个时间的之后会自动清除掉这个连接.

但是很多时候5分钟并不够用, 所以需要在配置文件中进行设置, 其单位为毫秒(ms). -->

<property name="maximumActiveTime" value="86400000" />

<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 -->

<property name="simultaneousBuildThrottle" value="50" />

<property name="houseKeepingTestSql" value="select CURRENT_DATE" />

</bean>

<!--
Spring官方推荐使用LazyConnectionDataSourceProxy
(http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/jdbc/datasource/LazyConnectionDataSourceProxy.html)。 
目的: 1).解决Hiberante命中cache时,会对数据库发起SET autocommit=0,commit,SET autocommit=0操作问题; 
2).解决read_only事务对性能的影响问题 -->
<!-- 个人觉得是用来管理数据源的 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
<property name="targetDataSource">
<ref local="dataSourceTarget" />
</property>
</bean> 
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager" lazy-init="true">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id= "nameMatch" class= "org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource" >
    <property name= "properties" >
         <props>              
<prop key="*">PROPAGATION_REQUIRED</prop>
          </props>
    </property>
 </bean>

<!--利用了拦截器的原理。 -->

<bean id="transactionInterceptor"

class="org.springframework.transaction.interceptor.TransactionInterceptor">

<!--   事务拦截器bean需要依赖注入一个事务管理器 -->

<property name="transactionManager">

<ref bean="transactionManager" />

</property>

<!--事务传播属性 -->

<property name="transactionAttributeSource">

<ref bean="nameMatch" />

</property>

</bean>

<bean id="txProxy"

class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

<property name="beanNames">

<list>

<value>*Manager</value>

<value>*Service</value>

</list>

</property>

<property name="interceptorNames">

<list>

<value>transactionInterceptor</value>

</list>

</property>

</bean>

<!--1:配置一个JdbcTemplate实例,并将这个“共享的”,“安全的”实例注入到不同的DAO类中去 -->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource" ref="dataSource"/>

</bean>

第三步:

由于在applicationContext-proxool.xml写参数麻烦,把参数写在applicationContext-database.properties

如下:

#SQL DB Settting

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/database

jdbc.username=root

jdbc.password=root

proxool.maximumConnectionCount=50

proxool.minimumConnectionCount=1

proxool.prototypeCount=1

时间: 2024-10-24 09:55:25

mongoDB(spring 部分配置)的相关文章

记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖

spring cloud 配置中心 结合GIT , 可以运行时更新配置文件.发送指令让应用重新读取配置文件. 最近在测试服务器实现了一套,结果CPU 实用率暴增,使用docker compose启动 restart always 多节点的服务一直重启关闭重启关闭. 日志文件记录了一个异常: 国内国外搜了一遍都没有解决 org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean wit

Spring事务配置的五种方式

Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSource.TransactionManager这两部分

Spring Boot 配置优先级顺序

http://www.cnblogs.com/softidea/p/5759180.html 一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一点不同,配置读取可是一个让人有点伤脑筋的问题. Spring Boot提供了一种优先级配置读取的机制来帮助我们从这种困境中走出来. 常规情况下,我们都知道Spring Boot的配置会从application.pro

Spring常用配置示例

Spring 是一款Java平台的开源框架,是为解决企业级应用程序开发的复杂性而创建的,通过良好的分层架构让开发人员能够专注于业务逻辑的开发. Spring框架是一个分层架构,由不同的模块组成,构成spring的每个组件或模块都可以单独使用或者多个模块配合使用,以实现不同的功能需求.Spring框架的模块结构如下图所示: SpringCore是Spring框架的核心模块,提供spring框架的基本功能,使用工厂模式BeanFactory通过控制反转(IoC).依赖注入(DI)等实现对beans的

MONGODB安装与配置

1.下载mongodb,下载地址为:http://pan.baidu.com/s/1qXVvIDA 2.安装mongodb,一路默认配置即可 2.在C盘根目录下建立目录data/db 3.启动mongodb服务,进入安装目录,启动mongod.exe 4.新启动终端,运行mongo.exe, 连接成功!

redis spring缓存配置

使用redis做缓存的思路是在spring的项目中配置拦截器,在service层做切面,在findXXX或者getXXX等方法上进行拦截判断是否缓存即可. 1.环境:spring 3.1.2 + spring data redis 1.0.0+ jedis 2.1.0 2.spring配置文件配置: <!-- jedis 配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConf

Spring hibernate配置中mappingLocations、mappingDirecto

mappingLocations.mappingDirectoryLocations与mappingJarLocations 区别 由于spring对hibernate配置文件hibernate.cfg.xml的集成相当好, 所以,在项目中我一直使用spring的org.springframework.orm.hibernate.LocalSessionFactoryBean来取代hibernate.cfg.xml文件的功能 LocalSessionFactoryBean有好几个属性用来查找hi

12.Spring AOP配置与应用

两种方式: a)     使用Annotation b)     使用xml Annotation a)     加上对应的xsd文件spring-aop.xsd b)     beans.xml <aop:aspectj-autoproxy /> c)     此时就可以解析对应的Annotation了 d)     建立我们的拦截类 e)     用@Aspect注解这个类 f)      建立处理方法 g)     用@Before来注解方法 h)     写明白切入点(executio

spring基本配置

基本配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.or

最小可用 Spring MVC 配置

[最小可用 Spring MVC 配置] 1.导入有概率用到的JAR包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mave