论坛首页 Java版 Struts

我用struts+spring+hibernate做的一个例子,想与大家共同讨...

浏览 3870 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2005-03-02
我的代码如下附件,包括源码
   
最后更新时间:2005-03-03
咋不见有人顶帖呀。
对了我用的工具是,myeclipse
服务器是,tomcate4.1
数据库是:oracle9
   
0 请登录后投票
最后更新时间:2005-03-03
我的web。xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app >
   <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <init-param>
         <param-name>config</param-name>
         <param-value>/WEB-INF/struts-config.xml</param-value>
      </init-param>
      <init-param>
         <param-name>debug</param-name>
         <param-value>0</param-value>
      </init-param>
      <init-param>
         <param-name>detail</param-name>
         <param-value>0</param-value>
      </init-param>
      <load-on-startup>2</load-on-startup>
   </servlet>
  
   <servlet>


   <servlet-mapping>
      <servlet-name>action</servlet-name>
      <url-pattern>*.do</url-pattern>
   </servlet-mapping>
</web-app>

我的struts_confing.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
   <data-sources />
   <form-beans >
      <form-bean name="addressForm" type="com.cnsi.myeclipse.springandhibernatertest.form.AddressForm"/>

   </form-beans>

   <global-exceptions />
   <global-forwards />
   <action-mappings >
      <action
         attribute="addressForm"
         input="/AddAddress.jsp"
         name="addressForm"
         path="/addaddress"
         scope="request"
         type="org.springframework.web.struts.DelegatingActionProxy" />
     

   </action-mappings>

   <controller bufferSize="4096" debug="0" />
   <message-resources parameter="messages_zh_CN" />
   <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value="/WEB-INF/springconfig.xml" />
   </plug-in>
</struts-config>

我的springconfig。xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC  "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
  <!--Spring 的aop的配置-->
  <!--CONFIG-->
  <bean id="bean" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="proxyInterfaces">
      <value>com.cnsi.aoptest.Bean</value>
    </property>
    <property name="target">
      <ref local="beanTarget"/>
    </property>
    <property name="interceptorNames">
      <list>
        <value>theAdvisor</value>
      </list>
    </property>
  </bean>

  <!--CLASS-->
  <bean id="beanTarget" class="com.cnsi.aoptest.ImpBean"/>

  <!--ADVISOR-->
  <!--Note: An advisor assembles pointcut and advice-->
  <bean id="theAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
    <property name="advice">
      <ref local="theBeforeAdvice"/>
    </property>
    <property name="pattern">
      <value>com\.cnsi\.aoptest\.Bean\.theMethod</value>
    </property>
  </bean>

  <!--ADVICE处理逻辑-->
  <bean id="theBeforeAdvice" class="com.cnsi.aoptest.TestBeforeAdvice"/>
 

  <!--spring的国际化支持-->
   <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
     <property name="basenames">
      <list>
         <value>messages</value>
      </list>
     </property>
  </bean>

  <!--spring的事件监听器-->
  <bean id="loginaction" class="com.cnsi.aoptest.LoginAction"/>
  <bean id="listener" class="com.cnsi.aoptest.ActionListener"/>
 
    <!--测试例子-->
  <bean id="accountdaotest" class="com.cnsi.aoptest.AccountDaoTest"/>
  <bean id="test" class="com.cnsi.aoptest.test">
  <property name="name">
  <value>chenggg</value>
  </property>
  <property name="sex">
  <value>male</value>
  </property>
  </bean>
  <bean class="com.cnsi.myeclipse.springandhibernatertest.Address" id="address"></bean>
 
  <!--这是jndi的数据源的配置方式-->
  <bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
               <value>java:comp/env/jdbc/hibernate</value>
        </property>
  </bean>
  <bean id="mySessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
        <property name="dataSource">
               <ref bean="myDataSource"/>
        </property>
<property name="mappingResources">
               <list>
               <value>com.cnsi.myeclipse.springandhibernatertest.Address.hbm</value>
               </list>
        </property>
        <property name="hibernateProperties">
               <props>
               <prop key="hibernate.dialect">net.sf.hibernate.dialect.Oracle9Dialect</prop>
               <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.Provider</prop>
               <prop key="hibernate.cache.use_query_cache">true</prop>
               <prop key="hibernate.show_sql">true</prop>
   </props>
        </property>
  </bean>
  <!--Spring的事物管理-->
  <bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
        <property name="sessionFactory">
        <ref local="mySessionFactory" />
        </property>
  </bean>
 
  <!-- hibernatedao 类的注入 -->
  <bean id="addressDAO" class="com.cnsi.myeclipse.springandhiberantertest.hibernaterdao.AddressHibernateDao">
  <property name="mySessionFactory">
  <ref local="mySessionFactory" />
  </property>
  </bean>

  <bean id="addressDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
            <ref bean="transactionManager" />
        </property>
        <property name="target">
            <ref local="addressDAO" />
        </property>
        <property name="transactionAttributes">
        <props>
        <prop key="insert*">PROPAGATION_REQUIRED</prop>
        <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
        <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
        </props>
        </property>
  </bean>
  <!-- serviceimpl类的注入 -->
  <bean id="addressService" class="com.cnsi.myeclipse.springandhibernatertest.service.AddressServiceImpl">
  <property name="addressDao">
  <ref local="addressDAOProxy"/>
  </property>
  </bean>
  <!--Struts 的action交由spring的容器来管理-->
  <bean name="/addaddress" class="com.cnsi.myeclipse.springandhibernatertest.action.InsertAddressAction" singleton="false">
        <property name="service">
        <ref local="addressService" />
        </property>
        <property name="address">
        <ref local="address" />
        </property>
  </bean>
</beans>

不知道对不对,请关注,可能是由于回帖的编辑器有问题,好多的bean的配置未显示。
   
0 请登录后投票
最后更新时间:2005-03-03
能说一下你的AOP是用来做什么的吗?
   
0 请登录后投票
最后更新时间:2005-03-03
我的aop与例子无关,只是在研究aop的时候做的例子
   
0 请登录后投票
论坛首页 Java版 Struts

跳转论坛:
JavaEye推荐