本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0

          service 服務居必須使用面向接口的方式編程

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
          <beans>
              
          <!-- spring+hibernate 基本配置 -->
              
          <bean id="placeholderConfig"
                  class
          ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                  
          <property name="location">
                      
          <value>classpath:spring.properties</value>
                  
          </property>
              
          </bean>
              
              
          <bean id="sessionFactory"
                  class
          ="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                  
          <property name="hibernateProperties">
                      
          <props>
              
                          
          <prop key="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop>
                          
          <prop key="hibernate.show_sql">true</prop>
                           
          <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                          
          <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
                          
          <prop key="hibernate.proxool.xml">proxool.xml</prop>
                          
          <prop key="hibernate.proxool.pool_alias">xhibernate</prop>
                          
          <prop key="hibernate.jdbc.batch_size">25</prop>
                          
          <prop key="hibernate.jdbc.fetch_size">50</prop>
                          
          <prop key="hibernate.connection.release_mode">after_transaction</prop>
                      
          </props>
                  
          </property>
                  
          <property name="mappingResources">
                      
          <list>

                          
          <value>com/easylotto/lottobar/domain/Demo.hbm.xml</value>
                      
                      
          </list>
                  
          </property>
              
          </bean>
              
          <!-- spring 事務配置 -->
              
          <bean id="transactionManager"
                  class
          ="org.springframework.orm.hibernate3.HibernateTransactionManager">
                  
          <property name="sessionFactory" ref="sessionFactory" />
              
          </bean>
              
              
          <bean id="baseTransactionProxy"
                  class
          ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
                  abstract
          ="true">
                  
          <property name="transactionManager">
                      
          <ref bean="transactionManager" />
                  
          </property>
                  
          <property name="transactionAttributes">
                      
          <props>
                          
          <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
                      
          </props>
                  
          </property>
              
          </bean>
              
          <!-- 系統常常 -->
              
          <bean id="commandHandler" class="java.lang.String">
                  
          <constructor-arg value="com.easylotto.lottobar.framework.BarServerCommandHandler"/>
              
          </bean>
              
          <bean id="clientData" class="java.lang.String">
                  
          <constructor-arg value="com.easylotto.lottobar.bean.SocketClientLoginInfoEntity"/>
              
          </bean>
              
          <bean id="serverPort" class="java.lang.String">
                  
          <constructor-arg value="4100"/>
              
          </bean>
              
          <bean id="serverName" class="java.lang.String">
                  
          <constructor-arg value="17lottoBarServer"/>
              
          </bean>
              
              
          <!-- VO PO 的父類 -->
              
          <bean id="baseEntity"  class="com.easylotto.lottobar.bean.BaseEntity"  abstract="true" />
              
          <!-- 命令VO -->
              
          <bean id="reqCommandVO" class="com.easylotto.lottobar.bean.ReqCommandVO" parent="baseEntity"/>
              
              

              
          <!-- 測試例子 -->
              
          <bean id="demoService"  parent="baseTransactionProxy">
                  
          <property name="target">
                      
          <bean class="com.easylotto.lottobar.barserver.service.DemoService"
                          autowire
          ="byName" />
                  
          </property>
              
          </bean>
              
              
          <!-- 命令解析 -->
              
          <bean id="commandParse" class="com.easylotto.lottobar.framework.CommandParse" />
              
          <!-- 命令融器 -->
              
          <bean id="commandContainer" class="com.easylotto.lottobar.framework.CommandContainer" >
                  
          <property name="commandMap">
                      
          <map>
                          
          <entry key="test" value-ref="demoService" />
                          
                      
          </map>
                  
          </property>
              
          </bean>
              
          <!-- 服務運行 -->
              
          <bean id="barServer" class="com.easylotto.lottobar.framework.BarServer">
                  
          <property name="commandHandler">
                      
          <ref bean="commandHandler"/>
                  
          </property>
                  
          <property name="clientData">
                      
          <ref bean="clientData"/>
                  
          </property>
                  
          <property name="serverPort">
                      
          <ref bean="serverPort"/>
                  
          </property>
                  
          <property name="serverName">
                      
          <ref bean="serverName"/>
                  
          </property>    
              
          </bean>
              
              
          <bean id="demoDAO" class="com.easylotto.lottobar.dao.DemoDAO" >
                  
          <property name="sessionFactory">
                      
          <ref bean="sessionFactory" />
                  
          </property>
              
          </bean>
              
          </beans>    

          如果采用spring聲明式管理后,直接調用DAO的方式并能不保存數據
            DemoDAO demoDAO=(DemoDAO)cpac.getBean("demoDAO");
            Demo d=new Demo();
            d.setName("小pei");
            d.setAge(558);
            demoDAO.save(d);
          這是為什么??同事說加上
          <bean id="userInfoDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
          <property name="transactionManager">
          <ref bean="transactionManager" />
          </property>
          <property name="target">
          <ref local="userInfoDAOImpl" />
          </property>
          <property name="transactionAttributes">
          <props>
          <prop key="insert*">PROPAGATION_REQUIRED</prop>
          <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
          </props>
          </property>
          </bean>
          DAO也采用代理的方式就可以不跟過Service層直接能操作DB,我想應該是這樣,但沒試用

          通過spring 的ApplicationContext獲取服務實例時只能使用接口如
          IService ds =(IService)cpac.getBean("demoService");
          而不是能是對象!!!

          亂,僅做個人筆記

          posted on 2008-02-29 16:26 有貓相伴的日子 閱讀(693) 評論(0)  編輯  收藏 所屬分類: ibatis/hibernate/持久層技術
          本站不再更新,歡迎光臨 java開發技術網
          主站蜘蛛池模板: 凤冈县| 蓬安县| 灵川县| 房产| 剑阁县| 汝城县| 太仓市| 平乐县| 湘西| 太仆寺旗| 自贡市| 文山县| 青浦区| 陕西省| 红原县| 永昌县| 富民县| 中宁县| 左贡县| 三亚市| 尉氏县| 太仆寺旗| 杭锦旗| 怀来县| 双流县| 万安县| 张北县| 江北区| 霍州市| 香格里拉县| 忻城县| 奉化市| 浮山县| 罗山县| 安康市| 鸡泽县| 淮南市| 电白县| 兴仁县| 巩留县| 昭通市|