﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Spring、Hibernate、Struts</title><link>http://www.blogjava.net/ahgf/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 08:58:01 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 08:58:01 GMT</pubDate><ttl>60</ttl><item><title>对于Spring的BeanNameAutoProxyCreator的一点疑惑</title><link>http://www.blogjava.net/ahgf/archive/2005/12/26/25442.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Mon, 26 Dec 2005 06:40:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/12/26/25442.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/25442.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/12/26/25442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/25442.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/25442.html</trackback:ping><description><![CDATA[<P>最近在使用BeanNameAutoProxyCreator对Struts的action里的方法进行拦截，记录每个方法的使用时间，配置文件如下：<BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="/query/usermanage"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="com.gfsoft.example.action.UserAction"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="userService"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">ref&nbsp;</SPAN><SPAN style="COLOR: #ff0000">bean</SPAN><SPAN style="COLOR: #0000ff">="webquery.person.proxy"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;&nbsp;Interceptors&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="logger"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="com.gfsoft.example.interceptor.ProfilingInterceptor"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;AutoProxies&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="loggingAutoProxy"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="beanNames"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">list</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">idref&nbsp;</SPAN><SPAN style="COLOR: #ff0000">bean</SPAN><SPAN style="COLOR: #0000ff">="/query/usermanage"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">list</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="interceptorNames"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">list</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">logger</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">list</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV><BR>当我测试时，程序没问题，但是如果把Interceptors 和AutoProxies配置到另一个配置文件里，测试时，没有拦截action里的动作。疑问就是：难道必须把要拦截的bean和Interceptors AutoProxies配置在同一配置文件里吗？如果可以分开配置，应该如何写配置文件？<BR><BR>问题已解决：<BR>&nbsp;&nbsp;&nbsp; 把Interceptors 和AutoProxies配置到另一个配置文件里pub-services.xml里，然后在需要拦截的action的配置文件里的最前面加上&lt;import resource="../pub/pub-services.xml"/&gt;即可。<img src ="http://www.blogjava.net/ahgf/aggbug/25442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-12-26 14:40 <a href="http://www.blogjava.net/ahgf/archive/2005/12/26/25442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Weblogic+oracle开发时遇到的一个和中文有关的问题</title><link>http://www.blogjava.net/ahgf/archive/2005/10/20/16091.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Thu, 20 Oct 2005 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/20/16091.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/16091.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/20/16091.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/16091.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/16091.html</trackback:ping><description><![CDATA[前提：<BR>Weblogic：8.1.4<BR>Oracle：9.0.1<BR><BR>表<BR>CREATE TABLE MYTABLE<BR>(<BR>&nbsp; ID&nbsp;&nbsp;&nbsp; INTEGER&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; NOT NULL,<BR>&nbsp; NAME&nbsp; CHAR(30 BYTE)&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; NOT NULL<BR>)<BR><BR>在程序中使用下述方法插入7个中文字符：<BR>getJdbcTemplate().execute("insert into mytable (id, name) values(1, '我的测试和结果')");<BR><BR>下面分为两种测试方法：<BR><BR>方法一：<BR>使用Weblogic自带的ojdbc14.jar，打印刚刚插入的结果的长度为23，这是因为驱动会认为一个中文为2个字节，这样插入后会自动在中文后面加上30-7*2个字节。<BR><BR>方法二：<BR>用oracle网站下载的该驱动时则打印的长度变为30。这表明此时驱动会认为一个中文为1个字节，这样插入后会自动在中文后面加上30-7*1个字节。<BR><BR>这样就出现了一个问题，如果使用方法二取出刚插入的名称作为新的名称再插入一条记录时会出错，错误为插入的字符值过大。这是因为取出后一个中文在java里认为是两个字节，这样此时的长度为30+7，当然会出错。<BR><BR>解决方法：把char改为varchar2。<BR><BR>但这样的话就使得我要对几乎所有的表进行修改，这是我不想要的。希望大家给我提个好的建议，该如何解决从weblogic自带的驱动改为oracle自带的驱动，而不用大的修改的问题。注：因为其他原因需要更换驱动。<BR><BR><BR><BR><BR><BR><img src ="http://www.blogjava.net/ahgf/aggbug/16091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-20 10:51 <a href="http://www.blogjava.net/ahgf/archive/2005/10/20/16091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>两种获取Oracle Sequence的方法 </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15505.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15505.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15505.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15505.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15505.html</trackback:ping><description><![CDATA[<P>前提：</P><PRE class=programlisting>CREATE TABLE Booking (
<SPAN style="BACKGROUND-COLOR: #c0c0c0">&nbsp;&nbsp;id INTEGER NOT NULL,</SPAN>
  date_made DATE,
  reserved_until TIMESTAMP,
  price DECIMAL(15, 2) NOT NULL,
  Purchase_id INTEGER,
  PRIMARY KEY(id))  <A name=458></A><A name=beginpage.></A>
</PRE><PRE class=programlisting><PRE class=programlisting>create sequence booking_seq 
  start with 1 
  increment by 1 
  nomaxvalue;</PRE><PRE class=programlisting></PRE><PRE class=programlisting><STRONG>方法一：<BR></STRONG>利用Spring的org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer</PRE><PRE class=programlisting></PRE><PRE class=programlisting><PRE class=programlisting>OracleSequenceMaxValueIncrementer incr = 
    new OracleSequenceMaxValueIncrementer(dataSource, "booking_seq");
   
public int getNewBookingId() {
  return incr.nextIntValue();
}</PRE><PRE class=programlisting></PRE><PRE class=programlisting>针对不同的数据库Spring提供了不同的支持类。</PRE><PRE class=programlisting></PRE><PRE class=programlisting><STRONG>方法二：</STRONG>使用数据库本身的触发器</PRE><PRE class=programlisting></PRE><PRE class=programlisting>CREATE OR REPLACE TRIGGER tib_booking BEFORE INSERT<BR>ON BOOKING FOR EACH ROW<BR>DECLARE<BR>&nbsp;&nbsp;&nbsp; integrity_error&nbsp; EXCEPTION;<BR>&nbsp;&nbsp;&nbsp; errno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER;<BR>&nbsp;&nbsp;&nbsp; errmsg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHAR(200);<BR>&nbsp;&nbsp;&nbsp; dummy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER;<BR>&nbsp;&nbsp;&nbsp; FOUND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BOOLEAN;</PRE><PRE class=programlisting>BEGIN<BR>&nbsp;&nbsp;&nbsp; --&nbsp; Column "ID" uses sequence booking_seq <BR>&nbsp;&nbsp;&nbsp; SELECT booking_seq.NEXTVAL INTO :NEW.ID FROM dual;</PRE><PRE class=programlisting>--&nbsp; Errors handling<BR>EXCEPTION<BR>&nbsp;&nbsp;&nbsp; WHEN integrity_error THEN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RAISE_APPLICATION_ERROR(errno, errmsg);<BR>END;</PRE><PRE class=programlisting></PRE><PRE class=programlisting><STRONG>测试：</STRONG></PRE><PRE class=programlisting>INSERT INTO BOOKING(date_made,price) VALUES(SYSDATE,22222);<BR>COMMIT;</PRE><PRE class=programlisting></PRE></PRE></PRE><img src ="http://www.blogjava.net/ahgf/aggbug/15505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:24 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Professional Java Development with the Spring Framework学习笔记(2) - 声明式事务 </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15504.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:20:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15504.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15504.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15504.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15504.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15504.html</trackback:ping><description><![CDATA[<P></P>
<P>Spring的声明式事务有以下几种配置方法：</P>
<P>1、ProxyFactoryBean/Transaction Interceptor</P>
<P>2、TransactionProxyFactoryBean</P>
<P>3、BeanNameAutoProxyCreator</P>
<P>4、Source-Level Metadata Using Commons Attributes</P>
<P>5、Source-Level Metadata Using J2SE 5.0 Annotations</P>
<P>个人认为4和5第一次配置完成后，以后再增加新的bean时会比较简单，但单单从配置文件上看不易理解。</P>
<P>本人推荐使用2，配置也十分简单，比较容易理解，利用维护人员的维护工作，在我做的项目中都是使用这种配置方式。</P>
<P>另外最好每个模块单独一个配置文件，在web.xml中contextConfigLocation的param-value中全部加进来。这样实际上就解决了使用2时产生的配置文件太大的问题。</P>
<P><STRONG>例子：</STRONG></P>
<P><STRONG>dataAccess-hibernate.xml<BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;The&nbsp;DBCP&nbsp;DataSource&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000ff">="dataSource"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="org.apache.commons.dbcp.BasicDataSource"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy-method</SPAN><SPAN style="COLOR: #0000ff">="close"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="driverClassName"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">${jdbc.driverClassName}</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="url"</SPAN><SPAN style="COLOR: #0000ff">&gt;&lt;</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">${jdbc.url}</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="username"</SPAN><SPAN style="COLOR: #0000ff">&gt;&lt;</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">${jdbc.username}</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="password"</SPAN><SPAN style="COLOR: #0000ff">&gt;&lt;</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">${jdbc.password}</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">value</SPAN><SPAN style="COLOR: #0000ff">&gt;&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;The&nbsp;transactionmanager&nbsp;to&nbsp;use&nbsp;for&nbsp;regular&nbsp;non&nbsp;JTA&nbsp;datasource&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000ff">="transactionManager"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="org.springframework.jdbc.datasource.DataSourceTransactionManager"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="dataSource"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">ref&nbsp;</SPAN><SPAN style="COLOR: #ff0000">local</SPAN><SPAN style="COLOR: #0000ff">="dataSource"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR>ticket-service.xml (ticket模块)<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;Transactional&nbsp;proxy&nbsp;and&nbsp;the&nbsp;primary&nbsp;business&nbsp;object&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000ff">="ticket.proxy"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="transactionManager"</SPAN><SPAN style="COLOR: #0000ff">&gt;&lt;</SPAN><SPAN style="COLOR: #800000">ref&nbsp;</SPAN><SPAN style="COLOR: #ff0000">bean</SPAN><SPAN style="COLOR: #0000ff">="transactionManager"</SPAN><SPAN style="COLOR: #0000ff">/&gt;&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="target"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">ref&nbsp;</SPAN><SPAN style="COLOR: #ff0000">local</SPAN><SPAN style="COLOR: #0000ff">="ticket.service"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="transactionAttributes"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">props</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">prop&nbsp;</SPAN><SPAN style="COLOR: #ff0000">key</SPAN><SPAN style="COLOR: #0000ff">="get*"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">PROPAGATION_SUPPORTS,readOnly</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">prop</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">prop&nbsp;</SPAN><SPAN style="COLOR: #ff0000">key</SPAN><SPAN style="COLOR: #0000ff">="allocate*"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">PROPAGATION_REQUIRED</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">prop</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">props</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;The&nbsp;Service&nbsp;class&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000ff">="ticket.service"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="org.springframework.prospring.ticket.service.BoxOfficeImpl"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="boxOfficeDao"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">ref&nbsp;</SPAN><SPAN style="COLOR: #ff0000">local</SPAN><SPAN style="COLOR: #0000ff">="ticket.dao"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">&nbsp;The&nbsp;DAO&nbsp;class&nbsp;</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">bean&nbsp;</SPAN><SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000ff">="ticket.dao"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;class</SPAN><SPAN style="COLOR: #0000ff">="org.springframework.prospring.ticket.dao.jdbc.JdbcBoxOfficeDao"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">property&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="dataSource"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">ref&nbsp;</SPAN><SPAN style="COLOR: #ff0000">local</SPAN><SPAN style="COLOR: #0000ff">="dataSource"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">property</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">bean</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR>
<P><STRONG>web.xml<BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">context-param</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">param-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">contextConfigLocation</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">param-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">param-value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">/WEB-INF/dataAccess-jdbc.xml&nbsp;&nbsp;&nbsp;/WEB-INF/conf/ticket-services.xml&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">param-value</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">context-param</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></STRONG></STRONG><BR>这是本人在项目中采取的配置。proxy注入service，service注入dao，配置简单明了，如果一个模块中有多个Service类，可以依次添加即可。<BR><img src ="http://www.blogjava.net/ahgf/aggbug/15504.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:20 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15504.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Professional Java Development with the Spring Framework学习笔记(1) - JdbcTemplate 中Query的几种用法 </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15503.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:16:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15503.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15503.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15503.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15503.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15503.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 数据库准备：1CREATE&nbsp;TABLE&nbsp;mytable(2&nbsp;&nbsp;id&nbsp;INTEGER&nbsp;NOT&nbsp;NULL,3&nbsp;&nbsp;name&nbsp;VARCHAR(50),4&nbsp;&nbsp;PRIMARY&nbsp;KEY(id));5package&nbsp;com.spring.test1;&nbsp;import&...&nbsp;&nbsp;<a href='http://www.blogjava.net/ahgf/archive/2005/10/14/15503.html'>阅读全文</a><img src ="http://www.blogjava.net/ahgf/aggbug/15503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:16 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Professional Java Development with the Spring Framework学习笔记(1) - JdbcTemplate </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15501.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:12:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15501.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15501.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15501.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15501.html</trackback:ping><description><![CDATA[<P><STRONG>JdbcTemplate 中execute和update的区别：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; execute不接受参数，无返回值，适用于create和drop table。</P>
<P>&nbsp;&nbsp;&nbsp; update可以接受参数，返回值为此次操作影响的记录数，适合于insert, update, 和delete等操作。</P>
<P></P><BR><img src ="http://www.blogjava.net/ahgf/aggbug/15501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:12 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring+Struts+Hibernate开发的应用部署在weblogic下时出现的“ClassNotFoundException: org.hibernate.hql.ast.HqlToken”错误的解决方法 </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15500.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15500.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15500.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15500.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15500.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15500.html</trackback:ping><description><![CDATA[<P>在dataAccess-hibernate.xml文件中加上下面一句话：</P>
<P><PROP key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory<BR><BR>这样还是使用Hibernate2的查询机制，根据回复经验证后可以按下面设置使用hibernate3的查询机制：<BR><BR>1、拷贝Hibernate3里带的包antlr-2.7.5H3.jar到%WL_HOME%\server\lib下<BR>2、修改startWebLogic.cmd ：<BR><BR>在set CLASSPATH之前加上下面一句：<BR>set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.5H3.jar;<BR>在set CLASSPATH之后加上下面一句：<BR>set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%<BR><BR>一切OK！</P>
<P>具体原因可参照此页：<A href="http://dev2dev.bea.com/blog/pmalani/archive/2005/07/configuring_web.html">http://dev2dev.bea.com/blog/pmalani/archive/2005/07/configuring_web.html</A></P><img src ="http://www.blogjava.net/ahgf/aggbug/15500.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:10 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15500.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在weblogic下运行部署web应用时，出现oracle数据库死锁的解决方法 </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15499.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15499.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15499.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15499.html</trackback:ping><description><![CDATA[<P><STRONG>问题：</STRONG></P>
<P>平台：Weblogic8.1.4&nbsp; oracle9 </P>
<P>当一个事务里，对前面没有提交的数据进行统计（sum）时，weblogic会停止在那里不动，而用Toad可以看到Oracle里许多表被死锁</P>
<P><STRONG>原因：</STRONG></P>
<P>不明白</P>
<P><STRONG>解决方法：</STRONG></P>
<P>用oracle网站上下载的jdbc驱动ojdbc14.jar替换%WL_HOME%\weblogic81\server\lib下的同名文件，问题解决。</P><img src ="http://www.blogjava.net/ahgf/aggbug/15499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:10 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Weblogic下配置Struts应用时出现tag错误的解决方法 </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15498.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15498.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15498.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15498.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15498.html</trackback:ping><description><![CDATA[<P><STRONG>错误信息：</STRONG></P>
<P>在webloigc下配置Struts应用时经常会出现下面错误，而在其它Web服务器下却没问题：</P>
<P>Parsing of JSP File '/index.jsp' failed:<BR>------------------------------------------------------------------------------- -<BR>/index.jsp(3): Error in using tag library uri='/WEB-INF/struts-html.tld' prefix='html': The Tag class 'org.apache.struts.taglib.html.FormTag' has no setter method corresponding to TLD declared attribute 'name', (JSP 1.1 spec, 5.4.1)<BR>probably occurred due to an error in /index.jsp line 3:<BR>&lt;%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %&gt; <BR></P>
<P><STRONG>原因</STRONG>：</P>
<P>这是因为weblogic对tag的要求十分严格</P>
<P></P>
<P><STRONG>解决方法：</STRONG></P>
<P>打开struts.jar可以看到有org和META-INF两个目录，在META-INF目录下是验证用的tld文件，实际上我们只要把这个META-INF目录删除即可。可以下载struts的源代码，然后重新生成新的jar文件，只包含java类文件，不要包含tld文件</P><img src ="http://www.blogjava.net/ahgf/aggbug/15498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:09 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15498.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HP-UX NTP服务器的设置方法 </title><link>http://www.blogjava.net/ahgf/archive/2005/10/14/15497.html</link><dc:creator>ahgf</dc:creator><author>ahgf</author><pubDate>Fri, 14 Oct 2005 03:08:00 GMT</pubDate><guid>http://www.blogjava.net/ahgf/archive/2005/10/14/15497.html</guid><wfw:comment>http://www.blogjava.net/ahgf/comments/15497.html</wfw:comment><comments>http://www.blogjava.net/ahgf/archive/2005/10/14/15497.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ahgf/comments/commentRss/15497.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ahgf/services/trackbacks/15497.html</trackback:ping><description><![CDATA[<P>注:192.168.0.1为NTP Server地址</P>
<P>use local server as NTP server:</P>
<P>NTP server:<BR>a. vi /etc/rc.config.d/netdaemons<BR>export NTPDATE_SERVER=<BR>export XNTPD=1<BR>export XNTPD_ARGS="-l /var/adm/syslog/ntp.log"<BR>b. vi /etc/ntp.conf<BR>add two lines in the end:<BR>server 127.127.1.1<BR>fudge 127.127.1.1 stratum 10<BR>c. /sbin/init.d/xntpd stop</P>
<P>d. /sbin/init.d/xntpd start</P>
<P>Client:<BR>a. vi /etc/rc.config.d/netdaemons<BR>export NTPDATE_SERVER=---&gt;export NTPDATE_SERVER="192.168.0.1"<BR>export XNTPD=1<BR>export XNTPD_ARGS="-l /var/adm/syslog/ntp.log"<BR>b. vi /etc/ntp.conf<BR>add one line in the end:<BR>server 192.168.0.1 prefer<BR>c. /sbin/init.d/xntpd stop</P>
<P>d. /sbin/init.d/xntpd start</P><img src ="http://www.blogjava.net/ahgf/aggbug/15497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ahgf/" target="_blank">ahgf</a> 2005-10-14 11:08 <a href="http://www.blogjava.net/ahgf/archive/2005/10/14/15497.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>