一、引用外部属性文件
classpath:mail.properties
classpath:jdbc.properties
我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${...}value)。
注意:
而在spring2.5的版本中提供了一种更简便的方式,如:
- <context:property-placeholder location="classpath:config/jdbc.properties"/>
这样以后要使用属性文件中的资源时,可以使用${属性名}来获得。
二、常用数据源的配置
第一种是:DBCP数据源,(需要加入2个jar文件,在spring中的lib下jakarta-commons/commons-dbcp.jar和commons-pools.jar)主要配置如下:
class="org.apache.commons.dbcp.BasicDataSource">
value="com.mysql.jdbc.Driver">
value="${jdbc.url}">
第二种是:c3p0数据源,跟第一种一个类型,需加入c3p0.jar包。
第三种是:JNDI数据源,配置在高性能的应用服务器(如WebLogic、WebSphere等)
- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
- <property name="jndiName" value="java:comp/env/jdbc/bbt"/>
- bean>
从spring2.0开始提供jee命名空间,可以简化配置如下:
- <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/bbt"/>
三、配置事务管理器
1、Spring JDBC 和 iBatis事务管理器的配置
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
2、Hibernate3以上事务管理器的配置(先要集成hibernate,再配置事务管理器)
-
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource"/>
- <property name="mappingResources">
- <list>
- <value>classpath:product.hbm.xmlvalue>
- list>
- property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- props>
- property>
- bean>
-
-
- <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory">property>
- bean>
3、配置tx/aop声明式事务
- <tx:advice id="txAdvice" transaction-manager="txManager">
- <tx:attributes>
- <tx:method name="find*" propagation="REQUIRED" read-only="true"/>
- <tx:method name="save*" propagation="REQUIRED"/>
- <tx:method name="update*" propagation="REQUIRED"/>
- <tx:method name="*" propagation="SUPPORTS" read-only="true" />
- tx:attributes>
- tx:advice>
别的例子,可以进行对比下:
rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/>
rollback-for="java.lang.RuntimeException" />
rollback-for="java.lang.Exception" />
- <aop:config>
- <aop:pointcut id="productServiceMethods" expression="execution(* com.wzc.student.business.*.*(..))" />
- <aop:advisor advice-ref="txAdvice" pointcut-ref="productServiceMethods" />
- aop:config>
对比:
四、context:component-scan
请参考http://blog.csdn.net/ydwuli06/article/details/6993219,具体的自己还深入研究过
五、aop注解支持
六、缓存配置
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
class="org.springmodules.cache.provider.ehcache.EhCacheFacade">
ehcache.xml文件:
timeToIdleSeconds="300" timeToLiveSeconds="600" maxElementsInMemory="1000"
maxElementsOnDisk="10" diskPersistent="true" diskExpiryThreadIntervalSeconds="300"
diskSpoolBufferSizeMB="100" memoryStoreEvictionPolicy="LRU" />
******************************************************************************************************************************************************************************
注解缓存的配置:
参考(出自http://blog.csdn.net/gaoligaoli/article/details/4282403):
关于spring实现ehcache有很多方法,很多都是利用aop来实现,我认为采用注解的方式更灵活,配置也更简洁。下面就是我利用spring-modules-0.9实现的注解缓存。
配置文件如下:
[xhtml] view plain copy print ?
-
-
- 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"
- xmlns:ehcache="http://www.springmodules.org/schema/ehcache"
- 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
- http://www.springmodules.org/schema/ehcache
- http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd">
-
-
-
-
-
-
这里一定要注意:
xmlns:ehcache="http://www.springmodules.org/schema/ehcache"
和
http://www.springmodules.org/schema/ehcache http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd
我就在这里花了很长时间,查了很多资料。网上的很多资料说这是spring-moduls的bug。很多朋友在这里总是报找到xsd文件。
在ehcache.xml中加入
[xhtml] view plain copy print ?
-
- maxElementsOnDisk="1000" eternal="true" overflowToDisk="true"
- memoryStoreEvictionPolicy="LFU" />
***************************************************************************************************************************************************************************
七、