开发者社区> 悟静> 正文

spring aop实现mysql读写分离(可用于SAE的mysql数据库)

简介: spring aop实现mysql读写分离(可用于SAE的mysql数据库)  发表于 2014-3-12 12:46:53 |只看该作者 |倒序浏览          前言:SAE的MySQL数据库提供了主从数据库,我们可以向主数据库写数据,同时从从库里面读取数。
+关注继续查看

spring aop实现mysql读写分离(可用于SAE的mysql数据库)



 发表于 2014-3-12 12:46:53 |只看该作者 |倒序浏览
         前言:SAE的MySQL数据库提供了主从数据库,我们可以向主数据库写数据,同时从从库里面读取数。如果在程序中不做数据库的读写切换是无法正常使用SAE的MYSQL数据库的,我们可以使用spring的aop功能实现mysql主从数据库的切换
          
application-datasource.xml中配置master和slave的数据库配置,通过aop实现切换。aop文件都在附件中
        <bean id="parentDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"        destroy-method="close">
                <property name="minPoolSize" value="5" />
                <property name="maxPoolSize" value="10" />
                <property name="initialPoolSize" value="5" />
                <property name="maxIdleTime" value="30" />
                <property name="acquireIncrement" value="5" />
                <property name="maxStatements" value="0" />
                <property name="idleConnectionTestPeriod" value="18000" />
                <property name="acquireRetryAttempts" value="30" />
                <property name="breakAfterAcquireFailure" value="false" />
                <property name="testConnectionOnCheckin" value="true" /> 
                <property name="testConnectionOnCheckout" value="true" />
                <property name="acquireRetryDelay" value="100"/>
        </bean>

<!-- 主数据源-->  
    <bean id="masterDataSource" parent="parentDataSource">  
        <property name="driverClass" value="${master.jdbc.driverClassName}" />  
        <property name="jdbcUrl" value="${master.jdbc.url}" />  
        <property name="user" value="${master.jdbc.username}" />  
        <property name="password" value="${master.jdbc.password}" />  
    </bean>  
    <!-- 从数据源-->  
    <bean id="slaveDataSource" parent="parentDataSource">  
        <property name="driverClass" value="${slave.jdbc.driverClassName}" />  
        <property name="jdbcUrl" value="${slave.jdbc.url}" />  
        <property name="user" value="${slave.jdbc.username}" />  
        <property name="password" value="${slave.jdbc.password}" />  
    </bean>  
          <!-- 数据源 -->
    <bean id="dataSource" class="com.common.aop.DynamicDataSource">  
        <property name="targetDataSources">  
            <map key-type="java.lang.String">  
                <entry key="slave" value-ref="slaveDataSource" />  
            </map>  
        </property>  
        <property name="defaultTargetDataSource" ref="masterDataSource" />  
    </bean>  

        <!-- 切换数据源 -->  
    <bean id="dataSourceAdvice" class="com.common.aop.DataSourceAdvice" />  
    <aop:config>  
        <aop:advisor  
            pointcut="execution(* com..service..impl.*.*(..))"  
            advice-ref="dataSourceAdvice" />  
    </aop:config> 

DynamicDataSource和DataSourceAdvice的java文件都在附件中

附:SAE mysql数据库的配置(应用使用mysql数据库必须先开启mysql服务)
用 户 名 :  accesskey(应用的accesskey)密  码 :  secretkey(应用的secretkey)
主库域名 :  w.rdc.sae.sina.com.cn
从库域名 :  r.rdc.sae.sina.com.cn
端  口 :  3307
数据库名 :  app_appname(app_加上应用名称)

读写分离配置.rar

2.83 KB, 下载次数: 37



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring 源码阅读 62:基于 JDK 的 AOP 代理对特殊方法调用的处理
本文深入分析了 JdkDynamicAopProxy 的invoke方法的第一部分逻辑,也就是,对于哪些方法的调用,不对其进行增强,而是执行对应的特定逻辑,从中可以了解,Spring AOP 对哪些方法是默认不进行增强的。
11 0
Spring 源码阅读 61:基于 JDK 动态代理的 AOP 代理回调方法 invoke 分析
本文分析了 JdkDynamicAopProxy 的invoke方法,invoke方法是基于 JDK 动态代理创建的 AOP 代理对象的方法处理回调逻辑,也是 Spring AOP 增强目标方法的关键逻辑。
68 0
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十二)日志篇(1):rocketmq+ aop +自定义注解 实现入参出参日志收集记录 完整源码
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十二)日志篇(1):rocketmq+ aop +自定义注解 实现入参出参日志收集记录 完整源码
27 0
Spring的AOP切面编程
Spring的AOP切面编程
13 0
Spring源码分析之AOP从解析到调用(三)
Spring源码分析之AOP从解析到调用
24 0
Spring源码分析之AOP从解析到调用(二)
Spring源码分析之AOP从解析到调用
29 0
Spring源码分析之AOP从解析到调用(一)
Spring源码分析之AOP从解析到调用
21 0
Spring——Aop面向切面编程(二)
Spring——Aop面向切面编程
26 0
Spring——Aop面向切面编程(一)
Spring——Aop面向切面编程
16 0
Spring AOP【统一异常处理与统一数据格式封装】
Spring AOP【统一异常处理与统一数据格式封装】
38 0
+关注
悟静
从事软件行业近二十年
文章
问答
文章排行榜
最热
最新
相关电子书
更多
电商网站需求分析和架构设计Spring Boot2.6入门
立即下载
云上Docker的Spring Cloud微服务应用实践分享
立即下载
Spring Boot 2.6.0电商网站开发实战
立即下载