当前位置:文档之家› spring配置文件各个属性详解

spring配置文件各个属性详解

spring配置文件各个属性详解分类:spring 2012-08-09 11:25 9316人阅读评论(2) 收藏举报springaophibernateattributesxhtmlwebsphere目录(?)[+]一、引用外部属性文件<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:mail.properties</value><value>classpath:jdbc.properties</value></list></property></bean>我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。

该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${...}value)。

注意:而在spring2.5的版本中提供了一种更简便的方式,如:1.<context:property-placeholderlocation="classpath:config/jdbc.properties"/>这样以后要使用属性文件中的资源时,可以使用${属性名}来获得。

二、常用数据源的配置第一种是:DBCP数据源,(需要加入2个jar文件,在spring中的lib下jakarta-commons/commons-dbcp.jar和commons-pools.jar)主要配置如下:<!-- Mysql版--><bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url"value="${jdbc.url}"></property><property name="username" value="${ername}"></property><property name="password" value="${jdbc.password}"></property></bean>第二种是:c3p0数据源,跟第一种一个类型,需加入c3p0.jar包。

第三种是:JNDI数据源,配置在高性能的应用服务器(如WebLogic、WebSphere等)1.<bean id="dataSource"class="org.springframework.jndi.JndiObjectFactoryBean">2.<property name="jndiName"value="java:comp/env/jdbc/bbt"/>3.</bean>从spring2.0开始提供jee命名空间,可以简化配置如下:1. <jee:jndi-lookup id="dataSource"jndi-name="java:comp/env/jdbc/bbt"/>三、配置事务管理器1、Spring JDBC 和iBatis事务管理器的配置<!-- 配置事务管理器--><bean id="TransactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>2、Hibernate3以上事务管理器的配置(先要集成hibernate,再配置事务管理器)1.<!-- 集成hibernate -->2.<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">3.<property name="dataSource"ref="dataSource"/>4.<property name="mappingResources">5.<list>6.<value>classpath:product.hbm.xml</value>7.</list>8.</property>9.<property name="hibernateProperties">10.<props>11.<prop key="hibernate.dialect">12.</props>13.</property>14.</bean>15.16.<!-- 配置Hibernate事务策略 -->17.<bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">18.<property name="sessionFactory"ref="sessionFactory"></property>19.</bean>3、配置tx/aop声明式事务<!-- 声明一个切面-->1. <tx:advice id="txAdvice"transaction-manager="txManager">2. <tx:attributes>3. <tx:method name="find*"propagation="REQUIRED"read-only="true"/>4. <tx:method name="save*"propagation="REQUIRED"/>5. <tx:method name="update*"propagation="REQUIRED"/>6. <tx:method name="*"propagation="SUPPORTS"read-only="true"/>7. </tx:attributes>8. </tx:advice>别的例子,可以进行对比下:<tx:advice id="userTxAdvice" transaction-manager="TransactionManager"><tx:attributes><tx:method name="delete*" propagation="REQUIRED" read-only="false"rollback-for="ng.Exception" no-rollback-for="ng.RuntimeException"/><tx:method name="insert*" propagation="REQUIRED" read-only="false"rollback-for="ng.RuntimeException" /><tx:method name="update*" propagation="REQUIRED" read-only="false"rollback-for="ng.Exception" /><tx:method name="find*" propagation="SUPPORTS"/><tx:method name="get*" propagation="SUPPORTS"/><tx:method name="select*" propagation="SUPPORTS"/></tx:attributes></tx:advice><!-- 把切面注入到业务中-->1. <aop:config>2. <aop:pointcut id="productServiceMethods"expression="execution(*com.wzc.student.business.*.*(..))"/>3. <aop:advisor advice-ref="txAdvice"pointcut-ref="productServiceMethods"/>4. </aop:config>对比:<aop:config><aop:pointcut id="pc" expression="execution(public *com.haso.bscsserver.service.*.*(..))" /> <!--把事务控制在Service层--><aop:advisor pointcut-ref="pc" advice-ref="userTxAdvice" /></aop:config>四、context:component-scan<!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能--><context:component-scan base-package="com.haso.bscsserver"><!-- 允许定义过滤器将基包下的某些类纳入或排除<context:include-filter type="annotation"expression="org.springframework.stereotype.Controller"/> --></context:component-scan>请参考/ydwuli06/article/details/6993219,具体的自己还深入研究过五、aop注解支持<!-- aop注解支持--><aop:aspectj-autoproxy proxy-target-class="true"/>六、缓存配置<!-- 缓存配置--><bean id="cacheManager"class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"><property name="configLocation" value="/WEB-INF/ehcache.xml"/></bean><!-- A facade to the Ehcache cache class --><bean id="cacheProviderFacade"class="org.springmodules.cache.provider.ehcache.EhCacheFacade"><property name="cacheManager" ref="cacheManager" /></bean><?xml version="1.0" encoding="UTF-8"?><ehcache>ehcache.xml文件:<!--name:Cache的唯一标识maxElementsInMemory:内存中最大缓存对象数maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大eternal:Element是否永久有效,一但设置了,timeout将不起作用overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中timeToIdleSeconds:设置Element在失效前的允许闲置时间。

相关主题