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中怎样设置事务,请参见博文:

差不多了,就这些,以后再补充

时间: 2024-10-06 01:21:29

ssh2的application.xml配置文件配置详解的相关文章

logback logback.xml 常用配置详解

一:根节点 包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒.当scan为true时,此属性生效.默认的时间间隔为1分钟. debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态.默认值为false. 例如: <configuration scan="true" scan

logback logback.xml常用配置详解(三) &lt;filter&gt;

转自:logback logback.xml常用配置详解(三) <filter> logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY,日志将立即被抛弃不再经过其他过滤器:返回NEUTRAL,有序列表里的下个过滤器过接着处理日志:返回ACCEPT,日志会被立即处理,不再经过剩余过滤器. 过滤器被添加到<Appender> 中,为<

logback logback.xml常用配置详解(一)&lt;configuration&gt; and &lt;logger&gt;

logback 配置详解(一)<configuration> and <logger> 一:根节点<configuration>包含的属性:scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true.scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒.当scan为true时,此属性生效.默认的时间间隔为1分钟.debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看l

logback logback.xml常用配置详解(二)&lt;appender&gt;

logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的组件. <appender>有两个必要属性name和class.name指定appender名称,class指定appender的全限定名. 1.ConsoleAppender: 把日志添加到控制台,有以下子节点: <encoder>:对日志进行格式化.(具体参数稍后讲解 ) &

web.xml文件配置详解以及实例说明

1.web.xml学名叫部署描述符文件,是在Servlet规范中定义的,是web应用的配置文件. 2.部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义).所有部署描述符文件的顶层(根)元素为web-app.请注意,XM

关于web.xml中配置详解

引文: 对于一个J2EE领域的程序员而言,基本上每天都会和web应用打交道. 什么是web应用?最简单的web应用什么样?给你一个web应用你该从何入手? 1.什么是web应用? web应用是一种可以通过Web访问的应用程序.在J2EE领域下,web应用就是遵守基于JAVA技术的一系列标准的应用程序. 2.最简单的web应用什么样? 2个文件夹.1个xml文件就能成为一个web应用 第一个文件夹:应用名,如test 第二个文件夹:在test文件夹中创建名为WEB-INF的文件夹 XML文件:在W

史上最全web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param&g

web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param>

web.xml配置文件元素详解(转载)

今天看到一篇关于web.xml配置文件元素的博文,觉得很全面,这里引用过来,方便学习和查询. http://www.cnblogs.com/hafiz/p/5715523.html 一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description&g