spring配置文件 applicationContext

<?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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jaxws="http://cxf.apache.org/jaxws"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-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://cxf.apache.org/jaxws
	http://cxf.apache.org/schemas/jaxws.xsd">
	
	
    <!-- 指定数据库配置信息,读取jdbc.propertiesp配置文件 -->
	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<value>classpath:jdbc.properties</value>
		</property>
	</bean>
    
    <!-- 指定数据源 使用Bonecp连接池   -->
   <bean id="dataSourceBonecp"  class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"> 
	   <property name="driverClass"><value>${jdbc.driverClassName}</value></property> 
	   <property name="jdbcUrl"><value>${jdbc.url}</value></property> 
	   <property name="username"><value>${jdbc.username}</value></property> 
	   <property name="password"><value>${jdbc.password}</value></property> 
	   <!-- 每60秒检查所有连接池中的空闲连接    --> 
	   <property name="idleConnectionTestPeriod"><value>{idleConnectionTestPeriod}</value></property>
	   <!-- 设置连接空闲时间(分钟) --> 
	   <property name="idleMaxAge"><value>{idleMaxAge}</value></property> 
	   <!--  设置连接池在每个分区中的最大连接数  --> 
	   <property name="maxConnectionsPerPartition"><value>{maxConnectionsPerPartition}</value></property> 
	   <!--  设置连接池设在每个分区中的最小连接数     --> 
	   <property name="minConnectionsPerPartition"><value>{minConnectionsPerPartition}</value></property> 
	   <!-- 设置分区(设置 3个分区) --> 
	   <property name="partitionCount"><value>{partitionCount}</value></property>   
	   <!-- 当连接池中的连接耗尽的时候 BoneCP一次同时获取的连接数 --> 
	   <property name="acquireIncrement"><value>{acquireIncrement}</value></property>  
	   <!-- 连接释放处理  --> 
	   <!-- 每个分区释放链接助理进程的数量,默认值:3,除非你的一个数据库连接的时间内做了很多工作,不然过多的助理进程会影响你的性能 -->
	   <property name="releaseHelperThreads"><value>{releaseHelperThreads}</value></property>  
	   <property name="statementsCachedPerConnection"><value>{statementsCachedPerConnection}</value></property>  
	   <!-- 设置获取connection超时的时间。这个参数默认为Long.MAX_VALUE;单位:毫秒。 -->
	   <property name="connectionTimeout"><value>{connectionTimeout}</value></property> 
   </bean> 
   
    <!-- 指定数据源 使用C3p0连接池   -->
    <bean id="dataSourceC3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass"><value>${jdbc.driverClassName}</value></property>
		<property name="jdbcUrl"><value>${jdbc.url}</value></property>
		<property name="user"><value>${jdbc.username}</value></property>
		<property name="password"><value>${jdbc.password}</value></property>
		<property name="acquireIncrement"><value>${acquireIncrement}</value></property>
		<property name="checkoutTimeout"><value>${checkoutTimeout}</value></property>
		<property name="maxPoolSize"><value>${maxPoolSize}</value></property>
		<property name="minPoolSize"><value>${minPoolSize}</value></property>
		<property name="initialPoolSize"><value>${initialPoolSize}</value></property>
	</bean>
    
    
    
    <!-- 基于hibernate注解的sessionFactory  -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
	     <property name="sessionFactory" ref="dataSourceC3p0" />
		 <property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
			</props>
		</property>
		<!-- 指定映射文件的位置,可以配置多个配置文件 -->
	     <property name="packagesToScan">
	         <list><value>com.ssh.model.*</value></list>
	     </property>
	</bean>
	
	 
    <!-- 基于hibernate的事务管理器 -->  
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
        <property name="sessionFactory" ref="sessionFactory" />  
    </bean>  
    <!-- 采用注解形式的声明式事务管理 -->  
    <tx:annotation-driven transaction-manager="txManager" proxy-target-class="false"/> 
	<!-- proxy-target-class="true" 表示采用动态代理类来管理事物,如果是false表示采用接口代理来管理事物 默认值为false-->	
		
	<aop:config>
	      <!-- 配置一个切入点,匹配所有Service包下的类执行的所有方法 -->
		<aop:pointcut id="comAOP"
			expression="execution(* com.ssh.sevice..*.*(..))" />
		<!-- 指定在txAdvice切入点应用txAdvice事务切面 -->
		<aop:advisor advice-ref="txAdvice" pointcut-ref="comAOP" />
    </aop:config>	
		
	<!-- 配置事务切面Bean,指定事务管理器 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<!-- 用于配置详细的事务语义 -->
		<tx:attributes>
			<!-- 所有以'get'开头的方法是read-only的 -->
			<tx:method name="get*" read-only="true" />
			<!-- 所有以'find'开头的方法是read-only的 -->
			<tx:method name="find" read-only="true" />
			<!-- 所有以'query'开头的方法是read-only的 -->
			<tx:method name="query" read-only="true" />
			<!-- 其他方法使用默认的事务设置 -->
			<tx:method name="*" rollback-for="java.lang.Exception" />
		</tx:attributes>
	</tx:advice>	
	
    
   
    <!-- 启用自动扫描,指定Bean扫描的包,多个包逗号隔开,任何标注了@Component,@Controller,@Service,@Repository的类,
     都会被自动识别为bean.使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入-->
	<context:component-scan base-package="com.ssh">
		<context:include-filter type="annotation"
			expression="org.aspectj.lang.annotation.Aspect" />
	</context:component-scan>
	
</beans>

相关推荐