??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久亚洲,日韩精品福利,日韩精品欧美一区二区三区http://www.aygfsteel.com/xuechen0721/category/13824.html<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;——?amp;nbsp;兵城下&nbsp;&nbsp;猫科动物zh-cnTue, 27 Feb 2007 09:18:30 GMTTue, 27 Feb 2007 09:18:30 GMT60Spring 学习W记Q二Q?/title><link>http://www.aygfsteel.com/xuechen0721/archive/2006/12/06/85737.html</link><dc:creator>兵城下</dc:creator><author>兵城下</author><pubDate>Wed, 06 Dec 2006 00:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/xuechen0721/archive/2006/12/06/85737.html</guid><wfw:comment>http://www.aygfsteel.com/xuechen0721/comments/85737.html</wfw:comment><comments>http://www.aygfsteel.com/xuechen0721/archive/2006/12/06/85737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xuechen0721/comments/commentRss/85737.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xuechen0721/services/trackbacks/85737.html</trackback:ping><description><![CDATA[ <div id="wmqeeuq" class="titlepage"> <div> <div> <h3 class="title"> <a name="d0e5820"> </a>事务理{略 </h3> </div> </div> <div> </div> </div> <p> <tt class="classname">TransactionTemplate</tt> ?tt class="classname">TransactionInterceptor</tt> 都是真正的事务处理代理l一?tt class="classname">PlatformTransactionManager</tt>实例Q?比如在Hibernate应用中它可以是一?tt class="classname">HibernateTransactionManager</tt> Q对于单独一个的Hibernat SessionFactoryQ?实质上用一个ThreadLocal的SessionQ或一?tt class="classname">JtaTransactionManager</tt> Q代理给容器的JTA子系l)?你甚臛_以用自定义?tt class="classname">PlatformTransactionManager</tt>的实现?所以呢Q如果你的应用需要分布式事务的时候, 原来的Hibernate事务理转变为JTA之类的,只不q是改变配置文g的事情?单地Q将Hibernate transaction manager替换为Spring的JTA transaction实现?事务的划分和数据讉K代码则不需要改变,因ؓ他们使用的是通用的事务管理API?对于横跨多个Hibernate SessionFacotry的分布式事务Q?只需单地?tt class="classname">JtaTransactionManager</tt> 同多?tt class="classname">LocalSessionFactoryBean</tt> 定义l合h作ؓ一个事务策略?你的每一个DAO通过bean属性得到各自的SessionFactory引用?如果所有的底层JDBC datasource都是支持事务的容器, 那么只要一个业务对象用了 <tt class="classname">JtaTransactionManager</tt>{略Q?它就可以横跨多个DAO和多个session factories来划分事务,而不需要特D的对待.</p> <pre class="programlisting"><beans> <bean id="myDataSource1" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/jdbc/myds1</value> </property> </bean> <bean id="myDataSource2" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/jdbc/myds2</value> </property> </bean> <bean id="mySessionFactory1" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"> <property name="mappingResources"> <list> <value>product.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop> </props> </property> <property name="dataSource"> <ref bean="myDataSource1"/> </property> </bean> <bean id="mySessionFactory2" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"> <property name="mappingResources"> <list> <value>inventory.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop> </props> </property> <property name="dataSource"> <ref bean="myDataSource2"/> </property> </bean> <bean id="myTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/> <bean id="myProductDao" class="product.ProductDaoImpl"> <property name="sessionFactory"> <ref bean="mySessionFactory1"/> </property> </bean> <bean id="myInventoryDao" class="product.InventoryDaoImpl"> <property name="sessionFactory"> <ref bean="mySessionFactory2"/> </property> </bean> <bean id="myProductServiceTarget" class="product.ProductServiceImpl"> <property name="productDao"> <ref bean="myProductDao"/> </property> <property name="inventoryDao"> <ref bean="myInventoryDao"/> </property> </bean> <bean id="myProductService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="myTransactionManager"/> </property> <property name="target"> <ref bean="myProductServiceTarget"/> </property> <property name="transactionAttributes"> <props> <prop key="increasePrice*">PROPAGATION_REQUIRED</prop> <prop key="someOtherBusinessMethod">PROPAGATION_MANDATORY</prop> </props> </property> </bean> </beans></pre> <p> <tt class="classname">HibernateTransactionManager</tt> ?tt class="classname">JtaTransactionManager</tt> 都用了与容器无关的Hibernate事务理器的lookup或JCAq接器(只要事务不是用EJB发v的)Q?从而考虑到在适当JVMU别上的cache处理?而且<tt class="classname">HibernateTransactionManager</tt> 能够为普通的JDBC讉K代码输出JDBC Connection?q就可以使得混合的Hibernate/JDBC数据讉K可以不用JTA而在高层ơ上q行事务划分Q?只要它们使用的是同一个数据库!</p> <img src ="http://www.aygfsteel.com/xuechen0721/aggbug/85737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xuechen0721/" target="_blank">兵城下</a> 2006-12-06 08:45 <a href="http://www.aygfsteel.com/xuechen0721/archive/2006/12/06/85737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring 学习W记Q一Q?/title><link>http://www.aygfsteel.com/xuechen0721/archive/2006/12/04/85315.html</link><dc:creator>兵城下</dc:creator><author>兵城下</author><pubDate>Mon, 04 Dec 2006 03:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/xuechen0721/archive/2006/12/04/85315.html</guid><wfw:comment>http://www.aygfsteel.com/xuechen0721/comments/85315.html</wfw:comment><comments>http://www.aygfsteel.com/xuechen0721/archive/2006/12/04/85315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xuechen0721/comments/commentRss/85315.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xuechen0721/services/trackbacks/85315.html</trackback:ping><description><![CDATA[声明式的事务划分 <div></div><p>我们可以使用Spring的AOP TransactionInterceptor来替换事务划分的手工代码Q?q需要在application context中定义interceptor?q个Ҏ使得你可以把业务对象从每个业务方法中重复的事务划分代码中解放出来?此外Q像传播行ؓ和隔ȝ别等事务概念能够在配|文件中改变Q而不会媄响业务对象的实现?</p><pre class="programlisting"><beans> ... <bean id="myTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> <bean id="myTransactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager"> <ref bean="myTransactionManager"/> </property> <property name="transactionAttributeSource"> <value> product.ProductService.increasePrice*=PROPAGATION_REQUIRED product.ProductService.someOtherBusinessMethod=PROPAGATION_MANDATORY </value> </property> </bean> <bean id="myProductServiceTarget" class="product.ProductServiceImpl"> <property name="productDao"> <ref bean="myProductDao"/> </property> </bean> <bean id="myProductService" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"> <value>product.ProductService</value> </property> <property name="interceptorNames"> <list> <value>myTransactionInterceptor</value> <value>myProductServiceTarget</value> </list> </property> </bean> </beans></pre><pre class="programlisting">public class ProductServiceImpl implements ProductService { private ProductDao productDao; public void setProductDao(ProductDao productDao) { this.productDao = productDao; } public void increasePriceOfAllProductsInCategory(final String category) { List productsToChange = this.productDAO.loadProductsByCategory(category); ... } ... }<br /><br /><br /><br /><br /><br /><br /><br />一个简便可选的创徏声明式事务的Ҏ是:<tt class="classname">TransactionProxyFactoryBean</tt>Q?特别是在没有其他AOP interceptor牉|到的情况下。对一个特定的目标beanQ?br /><tt class="classname">TransactionProxyFactoryBean</tt>用事务配|自p合proxy定义?q样把配置工作减少为配|一个目标bean以及一?proxy bean的定?br />Q少了interceptor的定义)?此外你也不需要指定事务方法定义在哪一个接口或cM?<pre class="programlisting"><beans> ... <bean id="myTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> <bean id="myProductServiceTarget" class="product.ProductServiceImpl"> <property name="productDao"> <ref bean="myProductDao"/> </property> </bean> <bean id="myProductService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="myTransactionManager"/> </property> <property name="target"> <ref bean="myProductServiceTarget"/> </property> <property name="transactionAttributes"> <props> <prop key="increasePrice*">PROPAGATION_REQUIRED</prop> <prop key="someOtherBusinessMethod">PROPAGATION_MANDATORY</prop> </props> </property> </bean> </beans></pre></pre><img src ="http://www.aygfsteel.com/xuechen0721/aggbug/85315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xuechen0721/" target="_blank">兵城下</a> 2006-12-04 11:57 <a href="http://www.aygfsteel.com/xuechen0721/archive/2006/12/04/85315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring 整合Struts的问题!http://www.aygfsteel.com/xuechen0721/archive/2006/08/21/64911.html兵城下兵城下Mon, 21 Aug 2006 15:44:00 GMThttp://www.aygfsteel.com/xuechen0721/archive/2006/08/21/64911.htmlhttp://www.aygfsteel.com/xuechen0721/comments/64911.htmlhttp://www.aygfsteel.com/xuechen0721/archive/2006/08/21/64911.html#Feedback3http://www.aygfsteel.com/xuechen0721/comments/commentRss/64911.htmlhttp://www.aygfsteel.com/xuechen0721/services/trackbacks/64911.html      问题很简单,是用Spring 理struts的action?br />      struts-config.xml如下Q?/font>
      <struts-config>

  <data-sources />
  <form-beans >
    <form-bean name="logonForm" type="com.xcblcx.struts.form.LogonForm">
    <!-- <form-property name="userName" type="java.lang.String"/>
    <form-property name="password" type="java.lang.String"/> -->
    </form-bean>

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="logonForm"
      input="/form/logon.jsp"
      name="logonForm"
      path="/Logon"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy">
      <forward name="logon_sc" path="/success.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="com.xcblcx.struts.ApplicationResources" />
 
  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
 <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>

spring的配|文ӞQ相关片D)
<beans>
         ........
       <bean name="/Logon" class="com.xcblcx.struts.action.LogonAction">
              <property name="CSCEDAO">
                  <ref bean="programmerDAOImpl"/>
              </property>
      </bean>
 </bean>
</beans>

注入到action中的programmerDAOImpl没有问题Q我已经使用普通应用程序测试过了?br />现在问题是,q行logon.jsp点击提交后,tomcat报错Q?br />

type Status report

message Servlet LogonAction is not available

description The requested resource (Servlet LogonAction is not available) is not available.

不知道ؓ什么, q请大家发表意见Q?br />附带问一个问题,关于spring理action的问题:一U是在Struts的Action中直接调用Spring的BeanQ另一U方式是Struts的Action作ؓSpring BeansQ直接注入所需资源Q由Springq行理。U方法更好一点呢Q?/p>

兵城下 2006-08-21 23:44 发表评论
]]>
hibernate3.0 + mysql5.0 errorhttp://www.aygfsteel.com/xuechen0721/archive/2006/08/20/64596.html兵城下兵城下Sun, 20 Aug 2006 03:45:00 GMThttp://www.aygfsteel.com/xuechen0721/archive/2006/08/20/64596.htmlhttp://www.aygfsteel.com/xuechen0721/comments/64596.htmlhttp://www.aygfsteel.com/xuechen0721/archive/2006/08/20/64596.html#Feedback0http://www.aygfsteel.com/xuechen0721/comments/commentRss/64596.htmlhttp://www.aygfsteel.com/xuechen0721/services/trackbacks/64596.html      本想应该很顺利,因ؓ我在办公室的机子上配|了cM的环境,只是用的是DB2 的数据库。可是在调试时尝试用hibernateq接数据库时Q报了这样一个exception: java.sql.BatchUpdateExceptionQ没见过cM的,折腾了我两天啊,不知道是Z么,q程很曲折啊Q?br />      一开始,我认为数据库q接不会有什么问题。所以我直接Z个webE序Q在struts action中注入hibernate sessionQƈ用spring理actionQ报错是肯定的,只是C大清报的是什么错了。后来我逐层剥离Q将web层去掉,直接写客L调用hibernateQ还是报错。紧接着我又把springLQ不用spring来管理我的beanQ单U的使用hibernateQ报了一个上面的exception: java.sql.BatchUpdateException。此时我׃知道该怎么办了Q和办公室的环境做对比(从hibernate 配置文g到程序)Q都没有发现什么问题!折腾了两天,真够郁闷的?br />      最后只能上|搜索,看到|友一片文章,他出了一个类似的问题Q说是mysql5.0和hibernate3.0在字W编码上有问题,?.1的mysql没有问题。我׃了一?.1的mysql试了一下果然就OK了?br />      看来hibernate3.0不支持mysql5.0Q或是网友说的字W编码问题,我不懂)?br />      附带一个心得:再用eclipse从数据库生成映射文gӞ会自动加上一个catolog= “你的数据源名”,要把它去掉,不然会报错!
      一Ҏ见,大家׃nQ?img src ="http://www.aygfsteel.com/xuechen0721/aggbug/64596.html" width = "1" height = "1" />

兵城下 2006-08-20 11:45 发表评论
]]>
关于Spring中Log文g的位|问题!http://www.aygfsteel.com/xuechen0721/archive/2006/08/06/62065.html兵城下兵城下Sun, 06 Aug 2006 10:59:00 GMThttp://www.aygfsteel.com/xuechen0721/archive/2006/08/06/62065.htmlhttp://www.aygfsteel.com/xuechen0721/comments/62065.htmlhttp://www.aygfsteel.com/xuechen0721/archive/2006/08/06/62065.html#Feedback5http://www.aygfsteel.com/xuechen0721/comments/commentRss/62065.htmlhttp://www.aygfsteel.com/xuechen0721/services/trackbacks/62065.html      好,那我写了个log4j.properties配置文g攑֜project根目录下Q再ơ运行,一切正常,log文g中也打出了信息。可我突然不xlog文g攑֜根目录下Q我单独Z一个包Q想攑֜q个包里面。可不知道在Spring中怎么指定q个路径。看了几个project下的配置文gQ都不知道怎么讄Q?br />      我这个不是web projectQ纯_的JAVAQ怎么指定我的log路径Q请各位指点Q?img src ="http://www.aygfsteel.com/xuechen0721/aggbug/62065.html" width = "1" height = "1" />

兵城下 2006-08-06 18:59 发表评论
]]>
վ֩ģ壺 | | | | | | | ƽ| | | ˳| | | ϻ| ̨| | | ±| | | Ϸ| | ٹ| Դ| | | żҴ| | | | ԭ| 㽭ʡ| ̩˳| ƽ| | | | ̫| | | |