1. web.xml 配置 Xml代码 <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml <!--classpath*:/spring-config/applicationContext.xml--> </param-value> </context-param> <!-- hibernate open session in view --> <filter> <filter-name>hibernateFilter</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> </filter> <!-- 编码 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <!-- hibernate open session in view --> <filter-mapping> <filter-name>hibernateFilter</filter-name> <url-pattern>/*<url-pattern> </filter-mapping> <!-- 编码 --> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.jsp<url-pattern> </filter-mapping> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> <!-- 要负责处理由 JavaBeans Introspector的使用而引起的缓冲泄露 --> <listener> <listener-class> org.springframework.web.util.IntrospectorCleanupListener </listener-class> </listener> 2.applicationContext.xml 配置 对于dataSource就省略了 可以使用c3p0连接池 Xml代码 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="annotatedClasses" ref="annotatedClasses"/> <property name="hibernateProperties" ref="hibernateProperties"/> </bean> <bean name="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="properties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">none</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.default_batch_fetch_size">30</prop> </props> </property> </bean> <!-- annotation table 类 --> <bean id="annotatedClasses" class="org.springframework.beans.factory.config.ListFactoryBean"> <property name="sourceList"> <list> <value>com.bask.model.Promotion</value> <value>com.bask.model.PromotionGroup</value> <value>com.bask.model.Largess</value> </list> </property> </bean> <!-- 事务 begin --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 支持 @Transactional --> <tx:annotation-driven/> <!-- 支持 @AspectJ --> <aop:aspectj-autoproxy/> <!-- 以AspectJ方式定义AOP --> <aop:config proxy-target-class="true"> <aop:advisor pointcut="execution(* com.bask.service.*Manager.*(..))" advice-ref="txAdvice"/> </aop:config> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- 以get 、 find 开头的方法是只读事务 --> <tx:method name="get*" read-only="true" /> <tx:method name="find*" read-only="true" /> <!-- 其他方法是默认 --> <tx:method name="save*" /> </tx:attributes> </tx:advice> <!-- 事务 end --> <context:annotation-config/> <!-- service下是spring使用注解 --> <context:component-scan base-package="com.bask.service"/> 3.说明 在这里我们将会根据class生产数据库表 Xml代码 <prop key="hibernate.hbm2ddl.auto">none</prop> <!-- auto 可以有create update and none 等--> 转自: http://bask.javaeye.com/blog/213359