<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="datasource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=master">
</property>
<property name="username" value="sa"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="datasource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>entity/StuInfo.hbm.xml</value>
</list>
</property>
</bean>
<!-- 事务管理 -->
<bean id="TransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="proxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="TransactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="check*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- DAO层 -->
<bean id="stuinfodao" class="dao.StuInfoDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- biz层 -->
<bean id="stuinfoservice" class="biz.StuInfoServiceImpl">
<property name="dao">
<ref bean="stuinfodao" />
</property>
</bean>
<!-- 真实代理层 -->
<bean id="proxyStuInfo" parent="proxy">
<property name="target">
<ref bean="stuinfoservice"/>
</property>
</bean>
<!-- 定义action -->
<bean name="/add" class="struts.action.AddAction">
<property name="service">
<ref bean="proxyStuInfo"/>
</property>
</bean>
</beans><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="addForm" type="org.apache.struts.action.DynaActionForm">
      <form-property name="name" type="java.lang.String" />
    </form-bean>  </form-beans>  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="addForm"
      input="/add.jsp"
      name="addForm"
      path="/add"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy" />  </action-mappings>  <message-resources parameter="struts.ApplicationResources" />
  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
  </plug-in>
</struts-config>不明白jsp跳到struts.xml后又怎么跳到spring的?
刚学spring下了个源码,求大侠解释下 spring的配置,是一个怎么运作流程

解决方案 »

  1.   

    spring是用来管理struts和hibernate,你用这个思想来看框架就容易理解了
      

  2.   

     type="org.springframework.web.struts.DelegatingActionProxy" 
    关键就是这个 交给spring代理
      

  3.   

    熟读唐诗300首,不会做诗也会吟。
    你把spring看个30遍  想不理解都难了
      

  4.   

    http://www.jdon.com/AOPdesign/spring2.htm
    http://www.ibm.com/developerworks/cn/java/wa-spring1/可以去看看 这两篇文章的介绍
      

  5.   

    来说下流程:
    jsp->.do->struts-config.xml文件(由于其action的type="org.springframework.web.struts.DelegatingActionProxy"意思是委托其spring作为代理,所以就直接根据name在spring.xml文件查找,spring来控制,什么依赖注入啊spring了)
      

  6.   

    不明白jsp跳到struts.xml后又怎么跳到spring的?
    系统启动:先加载context.xml文件,把定义的bean加载的缓存中,
    jsp页面调用action后,从struts.xml找到action的定义
    <action name="Test" class="testAction">
    <result name="success">/login/success.jsp</result>
     <result name="invalid.token">/login/error.jsp</result>      
    <interceptor-ref name="defaultStack" />
               <interceptor-ref name="token" />
    </action>然后在spring的bean对象找到Test的定义
    <bean id="testAction" class="login.TestAction"
    scope="prototype">
    </bean>
      

  7.   

    在struts的配置文件里面type="org.springframework.web.struts.DelegatingActionProxy"即使用了spring的动态代理会查看相应的spring配置文件 从配置文件读出将要转到的action 并提供action里相应的bean
      

  8.   

    <!-- 事务管理 -->
        <bean id="TransactionManager"
            class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory">
                <ref bean="sessionFactory" />
            </property>
        </bean>
        <bean id="proxy"
            class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
            abstract="true">
            <property name="transactionManager">
                <ref bean="TransactionManager" />
            </property>
            <property name="transactionAttributes">
                <props>
                    <prop key="check*">PROPAGATION_REQUIRED</prop>
                    <prop key="add*">PROPAGATION_REQUIRED</prop>
                    <prop key="delete*">PROPAGATION_REQUIRED</prop>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>
        </bean>
    这段,不是很懂
      

  9.   

    struts-config.xml:
        <action
          attribute="addForm"
          input="/add.jsp"
          name="addForm"
          path="/add"
          scope="request"
          type="org.springframework.web.struts.DelegatingActionProxy" />spring配置文件:
    <bean name="/add" class="struts.action.AddAction">通过Spring框架提供的代理类。
      

  10.   

    最简单的配置,仅仅只需要在struts-config.xml里面配置这个<controller
    processorClass="org.springframework.web.struts.AutowiringRequestProcessor">
    </controller>