SpringMVC hibernate增加多数据源 (SSHE/SYPRO增加多数据源为例)

SpringMVC hibernate增加多数据源

(以类SSHE/SYPRO增加多数据源为例作说明)

注:适用与SpringMVC + Hibernate的项目。其它框架的仅仅能说作參考用

配置Spring

新建一个Spring的数据源配置文件,如spring-hibernate-aite.xml

怎么新建文件就不说了

新建的Spring的数据源配置文件的内容:

内容能够先将原有的spring-hibernate.xml全然copy过来,然后做对应改动

A.dataSource的对应改动

<!-- 
配置数据源
①bean的name属性,原来是dataSource 如今改成DataSourceAite 
-->
	<bean name="dataSourceAite" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
		<property name="url" value="${jdbc_url_aite}" />
		<property name="username" value="${jdbc_username_aite}" />
		<property name="password" value="${jdbc_password_aite}" />

		<!-- 初始化连接大小 -->
		<property name="initialSize" value="0" />
		<!-- 连接池最大使用连接数量 -->
		<property name="maxActive" value="20" />
		<!-- 连接池最大空暇 -->
		<property name="maxIdle" value="20" />
		<!-- 连接池最小空暇 -->
		<property name="minIdle" value="0" />
		<!-- 获取连接最大等待时间 -->
		<property name="maxWait" value="60000" />

		<property name="validationQuery" value="${validationQuery}" />
		<property name="testOnBorrow" value="false" />
		<property name="testOnReturn" value="false" />
		<property name="testWhileIdle" value="true" />

		<!-- 配置间隔多久才进行一次检測,检測须要关闭的空暇连接,单位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="60000" />
		<!-- 配置一个连接在池中最小生存的时间。单位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="25200000" />

		<!-- 打开removeAbandoned功能 -->
		<property name="removeAbandoned" value="true" />
		<!-- 1800秒,也就是30分钟 -->
		<property name="removeAbandonedTimeout" value="1800" />
		<!-- 关闭abanded连接时输出错误日志 -->
		<property name="logAbandoned" value="true" />

		<!-- 监控数据库 -->
		<!-- <property name="filters" value="stat" /> -->
		<property name="filters" value="mergeStat" />
	</bean>

B.sessionFactory的对应改动

<!--
	配置hibernate session工厂。
	①bean的id属性,原来的id是sessionFactory 如今改成sessionFactoryAite;
	②dataSource的ref,原来是dataSource 如今改成上边配好新 数据源名字dataSourceAite
	-->
	<bean id="sessionFactoryAite" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSourceAite" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.hbm2ddl.auto">none</prop>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
				<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
			</props>
		</property>

		<!-- 自己主动扫描注解方式配置的hibernate类文件 -->
		<property name="packagesToScan">
			<list>
				<value>sy.*.model</value>
			</list>
		</property>
	</bean>

C.事物管理器的对应更改

<!-- 
<span style="white-space:pre">	</span>配置事务管理器 
<span style="white-space:pre">	</span>①bean的name属性,原来是transactionManager 如今改成transactionManagerAite
<span style="white-space:pre">	</span>②sessionFactory的ref,原来是sessionFactory 如今改成上边配好的新名字sessionFactoryAite
<span style="white-space:pre">	</span>-->
<span style="white-space:pre">	</span><bean name="transactionManagerAite" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<span style="white-space:pre">		</span><property name="sessionFactory" ref="sessionFactoryAite"></property>
<span style="white-space:pre">	</span></bean>

D.事物拦截规则的对应更改

<!--
	拦截器方式配置事物
	①用上边新创建的事物管理器来管理事物规则,原来id是transactionAdvice 如今改成transactionAdviceAite
	②改动id。原来id是 transactionAdvice 如今改成 transactionAdviceAite
	 -->
	<tx:advice id="transactionAdviceAite" transaction-manager="transactionManagerAite">
		<tx:attributes>
			<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="append*" propagation="REQUIRED" />
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="modify*" propagation="REQUIRED" />
			<tx:method name="edit*" propagation="REQUIRED" />
			<tx:method name="del*" propagation="REQUIRED" />
			<tx:method name="delete*" propagation="REQUIRED" />
			<tx:method name="remove*" propagation="REQUIRED" />
			<tx:method name="repair" propagation="REQUIRED" />
			<tx:method name="delAndRepair" propagation="REQUIRED" />

			<tx:method name="get*" propagation="REQUIRED" read-only="true" />
			<tx:method name="find*" propagation="REQUIRED" read-only="true" />
			<tx:method name="load*" propagation="REQUIRED" read-only="true" />
			<tx:method name="search*" propagation="REQUIRED" read-only="true" />
			<tx:method name="datagrid*" propagation="REQUIRED" read-only="true" />

			<tx:method name="*" propagation="REQUIRED" read-only="true" />
		</tx:attributes>
	</tx:advice>

E.Spring切面配置的对应更改

<!--
	将新的规则增加Spring的aop
	①改动advice-ref,原来是transactionAdvice 先改成上边新名字transactionAdviceAite
	-->
	<aop:config>
		<aop:pointcut id="transactionPointcut" expression="execution(* sy.*.service..*Impl.*(..))" />
		<aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdviceAite" />
	</aop:config>

保存文件

到这儿,Spring要做的配置基本完事儿了

改动web.xml

要使新建的数据源配置文件spring-hibernate-aite.xml生效,须要在web.xml里边将增加classpath中

<context-param>
		<param-name>contextConfigLocation</param-name>
		<!-- 增加classpath:spring-hibernate-aite.xml -->
		<param-value>classpath:spring.xml,classpath:spring-hibernate.xml,classpath:spring-hibernate-aite.xml</param-value>
	</context-param>

保存文件

这个时候。能够启动执行一下项目,看看是否报错,在做下一步操作

新建dao使用新增的一个数据源

有几个dao就有几个数据源

新建daoI

这里能够直接将原来的sy.dao.BaseDaoI.java复制一个到同一包文件夹下,重命名为sy.dao.AiteBaseDaoI.java

新建daoImpl

这里能够直接将原来的sy.dao.impl.BaseDaoImpl.java复制一个到同一包文件夹下。重命名为sy.dao.AiteBaseDaoImpl.java

然后做一些小调整:

/**Repository原来是baseDao 这里改动成aiteBaseDao**/
@Repository("aiteBaseDao")
public class AiteBaseDaoImpl<T> implements AiteBaseDaoI<T> {
	private static final Logger logger=Logger.getLogger(AiteBaseDaoImpl.class);

	/**sessionFactory名字原来是sessionFactory 如今改动成sessionFactoryAite**/
	private SessionFactory sessionFactoryAite;

	public SessionFactory getSessionFactoryAite() {
		return sessionFactoryAite;
	}

	@Autowired
	public void setAiteSessionFactory(SessionFactory sessionFactoryAite) {
		this.sessionFactoryAite = sessionFactoryAite;
	}

	private Session getCurrentSession() {
		return this.sessionFactoryAite.getCurrentSession();
	}

其它地方都不用改动

dao层写好了之后。能够启动执行下项目,看看有没有异常,没有异常则继续下一步操作

service层的调用

@Service("taskService")
public class TaskServiceImpl implements TaskServiceI {

	/** 这里用新数据源的Dao就好了。其它的都和原来一致 **/
	private AiteBaseDaoI<Ttask> tdao;

	public AiteBaseDaoI<Ttask> getTdao() {
		return tdao;
	}

	@Autowired
	public void setTdao(AiteBaseDaoI<Ttask> tdao) {
		this.tdao = tdao;
	}

到这里,从配置到使用都完毕了,接下来就来完毕你的应用吧

时间: 2024-10-13 12:02:37

SpringMVC hibernate增加多数据源 (SSHE/SYPRO增加多数据源为例)的相关文章

SpringMVC hibernate加入多数据源 (SSHE/SYPRO加入多数据源为例)

SpringMVC hibernate加入多数据源 (以类SSHE/SYPRO加入多数据源为例作说明) 注:适用与SpringMVC + Hibernate的项目,其他框架的只能说作参考用 配置Spring 新建一个Spring的数据源配置文件,如spring-hibernate-aite.xml 怎么新建文件就不说了 新建的Spring的数据源配置文件的内容: 内容可以先将原有的spring-hibernate.xml完全copy过来,然后做相应修改 A.dataSource的相应修改 <!-

SpringMVC+hibernate框架整合源码SSH Dubbo,ZooKeeper

获取[下载地址]   QQ: 313596790   [免费支持更新]A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用

springMVC+Hibernate配置

本文描述下 sypro 项目中使用 springMVC+Hibernate配置,初学SpringMVC做下简单整理解. 1.web项目首先我们要使用 web.xml文件将 spring配置引入进来 Xml代码   <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee&q

Maven搭建SpringMVC+Hibernate项目详解

前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring

Maven搭建SpringMVC+Hibernate项目详解 【转】

前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring

Maven搭建SpringMVC+Hibernate项目详解(转)

前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring

Spring MVC基础知识整理?Spring+SpringMVC+Hibernate整合操作数据库

概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibernate使用方便,配置响应的XML文件即可.由于spring3.x,基于asm的某些特征,而这些asm还没有用jdk8编译,所以采用Spring 3+JDK8就会报错,提示错误信息( java.lang.IllegalArgumentException),具体解决方案有:1.Spring 3+JDK7

J2EE搭建SpringMVC+hibernate开发环境

搭建过程完全参考 http://blog.csdn.net/chenyi0834/article/details/19631445 (SpringMVC+Hibernate+Spring整合实例(一)) 本篇关于SpringMVC基本都会采用注解的方式,首先配置好数据源以及事务spring-common.xml,放在config.spring包下: <?xml version="1.0" encoding="UTF-8"?> <beans xmln

SpringMVC+hibernate整合小例子,用户的增删查改

SpringMVC+hibernate整合小例子,用户的增删查改 对于使用框架写项目,我的第一反应的把所有需要的jar文件引入. 因为我用的是JDK1.8,当使用spring3.2 注解的时候会出现问题,所以最终使用的spring4.0.  hibernate使用的版本为4.0 .至于一些依赖包的版本就是看别人的资料拿的. 然后看下整体的项目结构 第一步写的是web.xml配置文件,当然有写东西是后面加上去的,不是一步到位的,比如说控制post方式的乱码.以及无法时候JS文件等一些静态文件,后面