论坛首页 Java企业应用论坛

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

浏览 6115 次
精华帖 (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>
         &lt;param-name&gt;config&lt;/param-name&gt;
         &lt;param-value&gt;/WEB-INF/struts-config.xml&lt;/param-value&gt;
      </init-param>
      <init-param>
         &lt;param-name&gt;debug&lt;/param-name&gt;
         &lt;param-value&gt;0&lt;/param-value&gt;
      </init-param>
      <init-param>
         &lt;param-name&gt;detail&lt;/param-name&gt;
         &lt;param-value&gt;0&lt;/param-value&gt;
      </init-param>
      &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
   &lt;/servlet&gt;
  
   &lt;servlet&gt;


   &lt;servlet-mapping&gt;
      &lt;servlet-name&gt;action&lt;/servlet-name&gt;
      <url-pattern>*.do</url-pattern>
   &lt;/servlet-mapping&gt;
&lt;/web-app&gt;

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

   &lt;/form-beans&gt;

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

   &lt;/action-mappings&gt;

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

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

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

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

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

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

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

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

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

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

跳转论坛:
Global site tag (gtag.js) - Google Analytics