ssh2的application.xml配置文件配置详解
ssh2的application.xml配置文件配置详解
1.导入其他的配置文件。在ssh项目中可以导入其他的配置文件,导入的格式为:
<import resource="classpath:**/applicationContext-bms-sendxml-quartz.xml"/>
这个是导入一个spring的定时任务的配置文件。
2.配置扫描类包并将相应注解纳入spring bean容器,,以及启动注解自动注入:
<context:component-scan base-package="com.XX" />
3.spring自己的事务管理:
<tx:annotation-driven />
4.配置配置文件路径(.properties):

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

5.配置数据源:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>${c3p0.jdbc.driverClass}</value>
</property>
<property name="jdbcUrl">
<value>${c3p0.jdbc.url}</value>
</property>
<property name="user">
<value>${c3p0.jdbc.username}</value>
</property>
<property name="password">
<value>${c3p0.jdbc.password}</value>
</property>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>${c3p0.jdbc.initialPoolSize}</value>
</property>
<!--连接池中保留的最小连接数。 -->
<property name="minPoolSize">
<value>${c3p0.jdbc.minPoolSize}</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>${c3p0.jdbc.maxPoolSize}</value>
</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>${c3p0.jdbc.maxIdleTime}</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>${c3p0.jdbc.acquireIncrement}</value>
</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>${c3p0.jdbc.idleConnectionTestPeriod}</value>
</property>
</bean>


<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<!-- 数据库方言 -->
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<!-- 显示Hibernate持久化操作所生成的SQL语句 -->
<prop key="hibernate.show_sql">false</prop>
<!-- 将SQL脚本进行格式化后再输出 -->
<prop key="hibernate.format_sql">false</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.avit</value>
</list>
</property>
</bean>

6.spring集成hibernate事务管理配置

<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</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="save*" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true" />
<tx:method name="*" />
</tx:attributes>
</tx:advice>
<!-- 事务控制位置,一哪些类的那些方法参与事务,一般在业务层service -->
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.avit.mmsp.padapter.services.*.*(..))"
advice-ref="txAdvice" />
<aop:advisor
pointcut="execution(* com.avit.mmsp.common.message.service.*.*(..))"
advice-ref="txAdvice" />
</aop:config>

上面的代码表示这个事务的事务管理器为transactionManager,这个advice中规定save的方法的传输方式为required,也就是说没有sessionfactory的时候回自动建立,又得时候就不会建立了。规定了advice的同时还需要指定一个aop:pointcut去引用它,这样这个advice就被联系到这两个pointcut上了。
关于read-only属性的理解:
表示该事物为只读事务,在将事务设置成只读后,相当于将数据库设置成只读数据库,此时若要进行写的操作,会出现错误。
read-only的应用场合:
如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性;
如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询SQL必须保证整体的读一致性,否则,在前条SQL查询之后,后条SQL查询之前,数据被其他用户改变,则该次整体的统计查询将会出现读数据不一致的状态,此时,应该启用事务支持。
ps:注意是一次执行多次查询来统计某些信息,这时为了保证数据整体的一致性,要用只读事务,关于spring和jdbc中怎样设置事务,请参见博文
ssh2的application.xml配置文件配置详解的更多相关文章
- crossdomain.xml的配置详解
目录 1 简介 2 crossdomain.xml的配置详解 3 总结 1 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及 ...
- logback logback.xml常用配置详解(三)
logback logback.xml常用配置详解 <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之 ...
- logback logback.xml常用配置详解(一)<configuration> and <logger>
logback logback.xml常用配置详解(一)<configuration> and <logger> 博客分类: Log java loglogback 原创文章 ...
- [转] logback logback.xml常用配置详解(一)<configuration> and <logger>
转载文章:原文出处:http://aub.iteye.com/blog/1101260 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 根节点< ...
- web.xml常用配置详解
web.xml常用配置详解 context-param 指定 ServletContext(上下文) 配置文件路径,基本配置一般是Spring配置文件,或者是spring-security的配置文件. ...
- 【转】logback logback.xml常用配置详解(二)<appender>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback logback.xml常用配置详解(一)<configuration> and <logger>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback logback.xml常用配置详解(三) <filter>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- logback logback.xml常用配置详解(二)<appender>
转自:http://aub.iteye.com/blog/1101260 logback 常用配置详解(二) <appender> <appender>: <append ...
随机推荐
- Codeforces Round #276 div1 B. Maximum Value Hash 乱搞
#include <cstdio> #include <cmath> #include <cstring> #include <ctime> #incl ...
- [Dynamic Language] Python定时任务框架
APScheduler是一个Python定时任务框架,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.并以daemon方式运行应用. 在APSchedu ...
- .net 基于Jenkins的自动构建系统开发
先让我给描述一下怎么叫一个自动构建或者说是持续集成 : 就拿一个B/S系统的合作开发来说,在用SVN版本控制的情况下,每个人完成自己代码的编写,阶段性提交代码,然后测试-修改,最后到所有代码完工,进行 ...
- IPD概念
集成产品开发-IPD简介 内训IPD流程,听完后,觉的流程的力量很强大,可以高效的团队几千上万人的研发团队,来正确地为同一个目标前进.因为讲解者是从华为出来的,所以,相关的案例分析以及理解,都是以华为 ...
- Javascript:猜猜弹出的是啥?为啥?
背景 经常需要向新入职的年轻同学解释Javascript的两个概念:单线程和作用域链,今天就再写篇博客说明一下. 单线程 队列:只有一个用来存储回调方法的队列. 消费线程:只有一个消费线程,不停的从队 ...
- SQL Server批量替换全部表中内容sql语句-清楚挂马
有朋友常常会发现自己的数据库全部的内容给插入了一些代码,假设要一个个表一个个记录去删除.太麻烦了,以下我在在网上找到一个能够批量删除的方法,实际上是批量把那段恶意代码替换,很高速. declare @ ...
- spring IOC的常见几种以来注入的方式
在spring ioc中有三种依赖注入,分别是:a.接口注入:b.setter方法注入:c.构造方法注入: 接口注入: public class ClassA { private InterfaceB ...
- [Android Pro] activity-alias的使用
activity-alias是android里为了重复使用Activity而设计的. 当在Activity的onCreate()方法里,执行getIntent().getComponent().get ...
- bashrc和profile的用途和区别
使用终端登录Linux操作系统的控制台后,会出现一个提示符号(例如:#或~),在这个提示符号之后可以输入命令,Linux根据输入的命令会做回应,这一连串的动作是由一个所谓的Shell来做处理. She ...
- [转载] java的书
1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...