使用annotcontion编写配置文件:

<!-- 在web.xml 中配置Spring配置 的文件 -->

<context-param>

 <param-name>contextConfigLocation</param-name>

 <param-value>classpath:applicationContext-*.xml</param-value>

 <!-- <param-value>/WEB-INF/applicationContext-*.xml</param-value>  -->

</context-param>

 

<listener>

  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

 

<!-- 请求数据的编码过滤器 -->

 <filter>

  <filter-name>charsetFilter</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>

 </filter>

 <filter-mapping>

  <filter-name>charsetFilter</filter-name>

  <url-pattern>/*</url-pattern>

 </filter-mapping>

 

<!-- OSIV -->

 <filter>

  <filter-name>osiv</filter-name>

  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

 </filter>

 <filter-mapping>

  <filter-name>osiv</filter-name>

  <url-pattern>*.do</url-pattern>

 </filter-mapping>

 

<!-- 在struts-config.xml中配置 -->

 <!-- 使用Spring的请求处理器 -->

    <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

 

 

 

<!-- 在applicationConfig-dao.xml -->

 

 <!-- C3P0连接池 -->

 <bean id="dataSource" destroy-method="close" class="com.mchange.v2.c3p0.ComboPooledDataSource">

  <property name="driverClass" value="com.mysql.jdbc.Driver" />

  <property name="jdbcUrl" value="jdbc:mysql:///test" />

  <property name="user" value="root" />

  <property name="password" value="root" />

 </bean>

 

 <!-- sessionFactory -->

 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

  <property name="configLocation" value="classpath:hibernate.cfg.xml" />

  <property name="dataSource" ref="dataSource"/>

 </bean>

 

 <!-- Dao配置 -->

 <bean id="daoParent" class="com.liuc.dao.impl.GenericDaoImpl" abstract="true">

  <property name="sessionFactory" ref="sessionFactory"/>

 </bean>

 

 <!-- 这里添加每个Dao的配置 -->

 <bean name="accountDao" class="com.liuc.dao.impl.AccountDaoImpl" parent="daoParent" />

 

 

<!--在applicationService.xml中配置 -->

 

 <!-- 声明式事务 -->

 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

  <property name="sessionFactory" ref="sessionFactory"/>

 </bean>

 <tx:advice id="txAdvice" transaction-manager="transactionManager">

  <tx:attributes>

      <!-- 根据实际需要对指定方法进行事务参数的指定 -->

   <tx:method name="*" isolation="READ_COMMITTED"/>

   <tx:method name="find*" read-only="true"/>

  </tx:attributes>

 </tx:advice>

 <aop:config>

  <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.liuc.service.impl.*.*(..))"/>

 </aop:config>

 

 <!-- 这里添加业务逻辑类的配置 -->

 <bean name="serviceFacade" class="com.liuc.service.impl.ServiceFacadeImpl" abstract="true" >

   <property name="accountDao " ref="accountDao"/>

   <property name="categoryDao" ref="cagegoryDao" />

 </bean>

注:    <property name="accountDao " ref="accountDao "/> 中的 name=" accountDao " 一定要与ServiceFacadeImpl中的属性相同, ref="accountDao"一定要与dao层中的 <bean name="accountDao " class="com.liuc.dao.impl.AccountDaoImpl" parent="daoParent" />相同

 

<!-- 在applicationConfig-web.xml中配置>

 <!-- 配置Struts1的Action类 -->

 <bean id="actionParent" class="com.liuc.web.action.BaseAction" abstract="true">

  <property name="serviceFacade" ref="serviceFacade"/>

 </bean>

 

 <!-- 这里针对struts-config.xml中的每个Action配置对应别名的Bean -->

    <bean name="/login" class="com.liuc.web.action.BaseAction" parent="actionParent"></bean>