`
liuxihope
  • 浏览: 9036 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java spring mvc多数据源配置

阅读更多
转自:http://www.itpub.net/thread-1906608-1-1.html


1、首先配置两个数据库
<bean id="dataSourceA"         class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
                <property name="driverClassName" value="${jdbc.driverClassName}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
                <property name="maxActive" value="${jdbc.maxActive}" />
                <property name="maxWait" value="${jdbc.maxWait}" />
        </bean>
<bean id="dataSourceB"         class="org.apache.commons.dbcp.BasicDataSource">
                <property name="driverClassName" value="${vjdbc.driverClassName}" />
                <property name="url" value="${vjdbc.url}" />
                <property name="username" value="${vjdbc.username}" />
                <property name="password" value="${vjdbc.password}" />
                <property name="maxActive" value="${jdbc.maxActive}" />
                <property name="maxWait" value="${jdbc.maxWait}" />
        </bean>

2、再配置一个dataSource 管理 key 值和value值对应,默认选择dataSourceA ,其他配置按照正常的spring mvc 配置即可。
<bean id="dataSource" class="com.broadengate.util.DynamicDataSource">
     <!-- 通过key-value的形式来关联数据源 -->
                <property name="targetDataSources">
                        <map key-type="java.lang.String">
                                <entry value-ref="dataSourceA" key="dataSourceA"></entry>
                                <entry value-ref="dataSourceB" key="dataSourceB"></entry>
                        </map>
                </property>
                <property name="defaultTargetDataSource" ref="dataSourceA" >
                </property>
        </bean>

3、sessionFactory 中使用 dataSource做数据源。
4、新建一个DynamicDataSource类继承AbstractRoutingDataSource。
public class DynamicDataSource extends AbstractRoutingDataSource{
public static final String DATA_SOURCE_A = "dataSourceA";
        public static final String DATA_SOURCE_B = "dataSourceB";
        private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
        public static void setCustomerType(String customerType) {
                contextHolder.set(customerType);
        }
        public static String getCustomerType() {
                return contextHolder.get();
        }
        public static void clearCustomerType() {
                contextHolder.remove();
        }
        @Override
        protected Object determineCurrentLookupKey() {
                return getCustomerType();
        }
}

5、切换数据源,这一步必须在进入业务层之前切换。
DynamicDataSource.setCustomerType(DynamicDataSource.DATA_SOURCE_A);
分享到:
评论

相关推荐

    Spring MVC 切换数据源

    1. **Spring MVC与数据源配置**: - 在Spring MVC应用中,我们通常通过Spring的`AbstractRoutingDataSource`来实现数据源的动态切换。这个抽象类可以根据某种条件(如线程绑定、请求参数等)决定使用哪个具体的数据...

    SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

    在多数据源配置中,Spring能够帮助管理不同的数据源,通过配置bean来切换和控制数据源的使用。 **SpringMVC** 是Spring框架的一部分,专为Web开发设计。它简化了模型-视图-控制器(Model-View-Controller,MVC)的...

    Spring MVC 配置 druid 数据源实例

    本实例将详细介绍如何在Spring MVC项目中配置并使用Druid数据源。 首先,我们需要理解Spring MVC和Druid的基本概念。Spring MVC是Spring框架的一部分,用于构建Web应用程序,它遵循MVC(Model-View-Controller)...

    spring 与 spring mvc 整合 配置讨论

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring MVC是Spring框架的一个重要模块,用于构建Web应用程序。本文将深入探讨Spring与Spring MVC的整合配置,并结合标签"源码"和"工具"来解析相关的技术细节...

    spring mvc restful service

    5. **项目结构**:一个典型的Spring MVC Maven项目结构包括`src/main/java`(存放源代码)、`src/main/resources`(存放配置文件和静态资源)、`src/main/webapp/WEB-INF`(存放`web.xml`配置文件)等。 6. **配置...

    spring mvc配置 + dbcp数据源+jdbcTemplate

    在本配置中,我们将探讨如何将Spring MVC与Apache DBCP数据源和JdbcTemplate结合使用,以实现高效、安全的数据库操作。 Apache DBCP(Database Connection Pool)是一个连接池组件,它允许应用在多个用户之间共享...

    Spring-MVC+Maven构建java项目

    在本文中,我们将深入探讨如何使用Spring MVC和Maven来构建一个Java项目。Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序,而Maven则是一个项目管理工具,用于简化构建、依赖管理和项目文档的生成。 *...

    Spring mvc 超简完整注解可运行Demo

    4. **配置**:在 Spring MVC 中,通常使用 XML 或 Java配置来定义视图解析器、拦截器、数据源等。然而,这个超简示例可能使用了自动配置(Auto-configuration)和 Spring Boot,通过少量或无需配置即可运行。 5. **...

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》_源代码.zip

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》是一本深入探讨Java企业级应用程序开发的书籍,源代码包含多个章节的实例,旨在帮助读者理解和掌握使用Spring、Spring MVC和MyBatis框架进行实际开发的关键...

    Mastering Spring MVC 4(2015.09)源码

    总的来说,"Mastering Spring MVC 4(2015.09)源码"提供了深入学习Spring MVC的机会,你可以通过阅读和分析源码来了解如何配置DispatcherServlet、怎样编写控制器、如何进行数据绑定与验证,以及如何利用拦截器等特性...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    在配置方面,Spring MVC使用XML或Java配置来定义组件,包括Controller、Service、DAO等。随着Spring的发展,现在更倾向于使用Java配置,因为它更加直观且易于维护。另外,Spring Boot的出现简化了Spring MVC的配置,...

    Spring MVC 4.2.3

    2. **Java配置增强**:Spring 4.2.x系列进一步提升了Java配置的支持,使得在没有XML配置的情况下也能轻松地配置Spring MVC。 3. **RESTful支持**:Spring MVC提供了对RESTful风格的HTTP方法(如GET、POST、PUT、...

    spring mvc案例+配置+原理详解+架包

    2. **spring-mvc.xml**:定义Bean、数据源、事务管理器、视图解析器、HandlerMapping和HandlerAdapter等。 四、Spring MVC 原理 1. **AOP代理**:Spring MVC中的切面编程用于实现如日志记录、事务管理等功能。 2. ...

    Spring MVC使用Demo

    不过,现代Spring MVC项目往往倾向于使用Java配置或Spring Boot的自动配置,减少了XML的使用。 在"Springmvc"这个压缩包中,可能包含了配置文件、控制器类、视图模板(可能是JSP或Thymeleaf文件)以及其他相关的源...

    spring mvc 4.0

    6. **数据绑定与验证**:Spring MVC提供了数据绑定和验证功能,允许将表单数据自动绑定到Java对象,并进行校验,简化了业务逻辑处理。 7. **视图解析**:Spring MVC 4.0支持多种视图技术,如JSP、FreeMarker、...

    spring mvc shiro的配置使用.zip_DEMO_spring mvc_spring mvc shiro

    其核心组件包括 Subject(当前操作用户)、SecurityManager(安全管理器)、Realm(认证和授权数据源)。通过配置 Shiro 配置文件或使用 Java Config,可以实现细粒度的权限控制。 在"spring mvc + shiro"的集成中...

    Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-源代码

    Java EE企业级应用开发是构建大型、复杂系统的关键技术,其中Spring、Spring MVC和MyBatis是核心组件,常被组合使用,形成了SSM(Spring + Spring MVC + MyBatis)框架栈。这个教程源代码提供了深入理解这些技术的...

    Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法

    当项目需要同时连接并操作多个数据库时,就需要配置双数据源。本篇文章将详细介绍如何在Spring MVC项目中实现双数据源,以便应用程序能够根据业务需求灵活地切换或使用不同的数据库。 首先,我们需要在配置文件中...

    Spring MVC + Mybatis+Spring实现的个人博客系统

    - `Spring MVC + Mybatis+Spring实现的个人博客系统`: 这个可能是博客系统的源代码,包括控制器、服务、DAO、实体类以及配置文件等。 **6. 开发流程** 开发此类系统时,一般会经历以下几个步骤:设计数据库模型,...

    Spring mvc整合mybatis例子

    在Spring配置文件中引入MyBatis的配置,例如`mybatis-config.xml`,并配置SqlSessionFactoryBean,指定MyBatis的配置文件和数据源。 - **配置MyBatis-Spring** 引入MyBatis-Spring库,这是一个连接Spring和...

Global site tag (gtag.js) - Google Analytics