1.annotation方式

<?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.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="com.bjsxt" />

<!--
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">

<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/spring" />
<property name="username" value="root" />
<property name="password" value="bjsxt" />
</bean>
-->

<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>

<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

<bean id="sf"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--
<property name="annotatedClasses">
<list>
<value>com.bjsxt.model.User</value>
<value>com.bjsxt.model.Log</value>
</list>
</property>
-->
<property name="packagesToScan">
<list>
<value>com.bjsxt.registration.model</value>

</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sf"></property>
</bean>

<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sf" />
</bean>

<aop:config>
<aop:pointcut id="bussinessService"
expression="execution(public * com.bjsxt.registration.service.*.*(..))" />
<aop:advisor pointcut-ref="bussinessService"
advice-ref="txAdvice" />
</aop:config>

<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="exists" read-only="true" />
<tx:method name="add*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>

</beans>

2.xml方式

<?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.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:i18n.properties</value>
<value>classpath:DataConnection.properties</value>
<value>classpath:cdsp.properties</value>
<value>classpath:memcache.properties</value>
<value>classpath:jta.properties</value>
</list>
</property>
</bean>
<!-- 数据源配置开始 -->
<!-- 框架默认库 -->
<bean id="dataSource"
class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init"
destroy-method="close">
<property name="uniqueResourceName">
<value>sourceA</value>
</property>
<property name="xaDataSourceClassName">
<value>oracle.jdbc.xa.client.OracleXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">${jdbc.username}</prop>
<prop key="password">${jdbc.password}</prop>
<prop key="URL">${jdbc.url}</prop>
</props>
</property>
<property name="maxPoolSize">
<value>60</value>
</property>
<property name="testQuery">
<value>SELECT 1 from dual</value>
</property>
</bean>

<!-- 渠道库 -->
<bean id="chnDataSource"
class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init"
destroy-method="close">
<property name="uniqueResourceName">
<value>chnDataSource</value>
</property>
<property name="xaDataSourceClassName">
<value>oracle.jdbc.xa.client.OracleXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">${chn.username}</prop>
<prop key="password">${chn.password}</prop>
<prop key="URL">${chn.url}</prop>
</props>
</property>
<property name="maxPoolSize">
<value>60</value>
</property>
<property name="testQuery">
<value>SELECT 1 from dual</value>
</property>
</bean>

<!-- 多数据源配置结束 -->

<bean id="default" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingLocations">
<list>
<value>classpath:hibernate/*.hbm.xml</value>
<value>classpath:hibernate/*/*.hbm.xml</value>
<value>classpath:hibernate/*/*/*.hbm.xml</value>
<value>classpath:hibernate/*/*/*/*.hbm.xml</value>
<!-- CDSP hibernate配置文件 -->
<value>classpath:cdsp/hibernate/*.hbm.xml</value>
<value>classpath:cdsp/hibernate/*/*.hbm.xml</value>
<value>classpath:cdsp/hibernate/*/*/*.hbm.xml</value>
<value>classpath:cdsp/hibernate/*/*/*/*.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">com.wnlja.prm.baselayer.hibernate.wnljaOracle9Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">25</prop>
<prop key="hibernate.use_outer_join">true</prop>
<!-- EhCache集成hibernate配置 -->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
</props>
</property>
</bean>

<bean id="chnSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="chnDataSource"/>
<property name="mappingDirectoryLocations">
<list>
<value>
classpath:hibernate/*.xml,
classpath:hibernate/*/*.xml,
classpath:hibernate/s98D00/*/*/*.xml,
</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">com.wnlja.prm.baselayer.hibernate.wnljaOracle9Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">25</prop>
<prop key="hibernate.use_outer_join">true</prop>
</props>
</property>
</bean>
<!-- bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="default" />
</property>
</bean-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true"/>
<tx:method name="query*" read-only="true"/>
<tx:method name="*"/>
<tx:method name="checkUser" no-rollback-for="com.wnlja.prm.baselayer.exception.BusinessException"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="rightManageServicePointcut" expression="execution(* com.wnlja.prm.baselayer.rightmanage.service.*.*(..))"/>
<!-- 增加用户 -->
<aop:pointcut id="addUserPointcut" expression="execution(* com.wnlja.prm.baselayer.rightmanage.service.RightManageService.addUser(..))"/>
<aop:pointcut id="editUserPointcut" expression="execution(* com.wnlja.prm.baselayer.rightmanage.service.RightManageService.editUser(..))"/>
<aop:advisor pointcut-ref="rightManageServicePointcut" advice-ref="txAdvice"/>
<aop:advisor pointcut-ref="rightManageServicePointcut" advice-ref="logAfterAdvice"/>
</aop:config>
<!-- -------------------------------------------------------------------------------------------------------- -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref local="default" />
</property>
<!-- EHCache配置 -->
<property name="cacheQueries">
<value>true</value>
</property>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<!-- --------------------------------------------------------------------------------------------------------- -->
<bean id="atomikosTransactionManager"
class="com.atomikos.icatch.jta.UserTransactionManager"
init-method="init" destroy-method="close">
<property name="forceShutdown">
<value>true</value>
</property>
</bean>

<bean id="atomikosUserTransaction"
class="com.atomikos.icatch.jta.UserTransactionImp">
<property name="transactionTimeout" value="300" />
</bean>

<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager">
<ref bean="atomikosTransactionManager" />
</property>
<property name="userTransaction">
<ref bean="atomikosUserTransaction" />
</property>
</bean>
<!-- ------------------------------------------------------------------------------------------------------------- -->
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager">
<!-- <ref bean="transactionManager" /> -->
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
<prop key="test*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- ------------------------------------------------------------------------------------------------------------- -->
<bean id="SpringContextUtil" class="com.wnlja.prm.baselayer.spring.SpringContextUtil" />
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!--
<bean id="imdb" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="imdbDataSource"/>
<property name="mappingDirectoryLocations">
<list>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=com.wnlja.prm.baselayer.hibernate.wnljaIMDBDialect
hibernate.show_sql=true
</value>
</property>
</bean>
-->
<bean id="rightManageService" class="com.wnlja.prm.baselayer.rightmanage.service.RightManageServiceImpl">
<property name="dao" ref="rightManageDao" />
</bean>
<bean id="rightManageDao" class="com.wnlja.prm.baselayer.rightmanage.dao.${dao.impl}.RightManageDaoImpl"/>

<bean id="logQueryService" parent="baseTransactionProxy">
<property name="target">
<bean class="com.wnlja.prm.baselayer.rightmanage.service.LogQueryServiceImp">
<!-- 默认查询的sql/hql -->
<property name="sql">
<value>
</value>
</property>
<!-- 是否是Hql -->
<property name="isHql">
<value>false</value>
</property>
<!-- 是否去掉空条件 -->
<property name="rmEmpty">
<value>true</value>
</property>
<property name="dao" ref="rightManageDao" />
</bean>
</property>
</bean>
<bean id="DBConnection" parent="baseTransactionProxy">
<property name="target">
<bean class="com.wnlja.prm.baselayer.hibernate.DBConnectionImpl">
<property name="sessionFactory" ref="default" />
<property name="sessionFactoryMap" ref="sessionFactoryMap" />
</bean>
</property>
</bean>
<bean id="sessionFactoryMap" class="java.util.HashMap"><!-- 前置的sessionFactory -->
<constructor-arg>
<map>
<entry><key><value>default</value></key><ref bean="default"/></entry>
<entry><key><value>chn</value></key><ref bean="chnSessionFactory"/></entry>
</map>
</constructor-arg>
</bean>

<!-- baseDao -->
<bean id="genericDao" class="com.wnlja.prm.baselayer.hibernate.genericdao.impl.GenericDao">
</bean>

<bean id="genericHBDao" class="com.wnlja.prm.baselayer.hibernate.genericdao.impl.GenericDaoHBImpl">
<property name="sessionFactory">
<ref bean="default" />
</property>
<property name="sessionFactoryMap" ref="sessionFactoryMap" />
</bean>

<bean id="genericJDBCDao" class="com.wnlja.prm.baselayer.hibernate.genericdao.impl.GenericJDBCDaoImpl">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="dataSourceMap" ref="dataSourceMap" />
</bean>
<bean id="dataSourceMap" class="java.util.HashMap">
<constructor-arg>
<map>
<entry><key><value>default</value></key><ref bean="dataSource"/></entry>
<entry><key><value>chn</value></key><ref bean="chnDataSource"/></entry>
</map>
</constructor-arg>
</bean>

<bean id="keyInfo" parent="baseTransactionProxy">
<property name="target">
<bean class="com.wnlja.prm.baselayer.keygen.KeyInfo">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
</bean>
</property>
</bean>
<!-- ---------------------------------------------------------------------------------------------------------- -->
<!-- 添加spring 自动填写事务
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*Service,*service</value>
</property>
<property name="interceptorNames">
<list>
<value>logAfterAdvisor</value>
</list>
</property>
</bean> -->
<!--
<bean id="privilegeBeforeAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="privilegeBeforeAdvice" />
</property>
<property name="pattern">
<value>.*</value>
</property>
</bean>
-->
<!--
<bean id="privilegeBeforeAdvice" class="com.wnlja.prm.baselayer.spring.PrivilegeBeforeAdvice" />
-->

<!--
<bean id="logAfterAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="logAfterAdvice" />
</property>
<property name="pattern">
<value>.*</value>
</property>
</bean>-->

<bean id="logAfterAdvice" class="com.wnlja.prm.baselayer.spring.LogAfterAdvice" >
<property name="logWriter">
<ref local="logWriter" />
</property>
</bean>

<bean id="logWriter" parent="baseTransactionProxy">
<property name="target">
<bean class="com.wnlja.prm.baselayer.spring.${dao.impl}.LogWriterImpl">
<property name="genericDao" ref="genericDao" />
</bean>
</property>
</bean>
</beans>

spring经典配置的更多相关文章

  1. Spring经典高频面试题,原来是长这个样子

    Spring经典高频面试题,原来是长这个样子 2019年08月23日 15:01:32 博文视点 阅读数 719   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文 ...

  2. Spring Boot -- 配置切换指南

    一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...

  3. spring 定时任务配置

    1.(易)如何在spring中配置定时任务? spring的定时任务配置分为三个步骤: 1.定义任务 2.任务执行策略配置 3.启动任务 (程序中一般我们都是到过写的,直观些) 1.定义任务 < ...

  4. 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

    1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...

  5. Spring Cloud 配置服务

    Spring Cloud 配置服务 1. 配置服务简介 产生背景: 传统开发中,我们通常是将系统的业务无关配置(数据库,缓存服务器)在properties中配置,在这个文件中不会经常改变,但随着系统规 ...

  6. spring事务配置详解

    一.前言 好几天没有在对spring进行学习了,由于这几天在赶项目,没有什么时间闲下来继续学习,导致spring核心架构详解没有继续下去,在接下来的时间里面,会继续对spring的核心架构在继续进行学 ...

  7. spring MVC配置详解

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  8. Spring mvc 配置详解

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  9. Spring动态配置多数据源

    Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...

随机推荐

  1. 虚拟机ubuntu16.0 安装 mysql 主机配置访问

    在bantu服务器中安装如下命令 sudo apt-get install mysql-server    sudo apt-get install mysql-client安装成功之后 进入配置文件 ...

  2. 推荐一个免费的生成词云(word cloud)的在线工具

    "词云"这个概念由美国西北大学新闻学副教授.新媒体专业主任里奇·戈登(Rich Gordon)提出. "词云"就是对网络文本中出现频率较高的"关键词& ...

  3. 最常见的 5 个导致节点重新启动、驱逐或 CRS 意外重启的问题 (文档 ID 1524455.1)

    适用于: Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 11.2.0.3 [发行版 10.1 到 11.2]本文档所含信息适用于所有平台 用 ...

  4. Shell脚本之for循环、while循环,if语句、case语句

    1. for循环一般格式: 格式1: for((条件)) do 动作 done 格式2: for 变量名 in 范围 do 动作 done1234567891011121314实验:##1. 输出数字 ...

  5. 为什么JS是单线程?JS中的Event Loop(事件循环)?JS如何实现异步?setimeout?

    https://segmentfault.com/a/1190000012806637 https://www.jianshu.com/p/93d756db8c81 首先,请牢记2点: (1) JS是 ...

  6. CPP-基础:strcpy之于C++(

    以下对strcpy函数错误的是? char atr1[]="string"; ]; char *str3; char *str4="sting"; A.strc ...

  7. QT+动手设计一个登陆窗口+布局

    登陆窗口的样式如下: 这里面涉及着窗口的UI设计,重点是局部布局和整体布局, 首先在ui窗口上添加一个容器类(Widget),然后将需要添加的控件放置在容器中,进行局部布局(在进行局部布局的时候可以使 ...

  8. 安装VC++6.0实验环境

    安装VC++6.0步骤:(1)下载一个压缩包进行解压(2)点击打开解压后的文件(3)找到文件里的程序进行安装(4)等待安装完成该程序后可以试着运行一下此程序,在此我们需要了解编写程序的步骤和注意事项. ...

  9. 【求助】NdisSend,自定义数据包发送失败?

    做ndis hook的时候,自定义了一个数据包,包结构应该没有问题,填充NDIS_PACKET结构是这样的,先初始化:        NdisAllocatePacketPool(&nStat ...

  10. MFC学习小结

    2019/1/13 视频来源 一.   MFC框架中一些重要的函数 1. InitInstance函数 应用程序类的一个虚函数,MFC应用程序的入口.初始化的作用. 2. PreCreateWindo ...