﻿<?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-josson.jin-随笔分类-Spring</title><link>http://www.blogjava.net/josson/category/22021.html</link><description>天地生人,有一人应有一人之业;人生在世,生一日当尽一日之勤!</description><language>zh-cn</language><lastBuildDate>Thu, 20 Dec 2007 15:22:17 GMT</lastBuildDate><pubDate>Thu, 20 Dec 2007 15:22:17 GMT</pubDate><ttl>60</ttl><item><title>Spring和Struct整合的三个方法</title><link>http://www.blogjava.net/josson/archive/2007/12/20/168927.html</link><dc:creator>josson</dc:creator><author>josson</author><pubDate>Thu, 20 Dec 2007 01:25:00 GMT</pubDate><guid>http://www.blogjava.net/josson/archive/2007/12/20/168927.html</guid><wfw:comment>http://www.blogjava.net/josson/comments/168927.html</wfw:comment><comments>http://www.blogjava.net/josson/archive/2007/12/20/168927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/josson/comments/commentRss/168927.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/josson/services/trackbacks/168927.html</trackback:ping><description><![CDATA[http://luoyuzj911.javaeye.com/blog/148817<br />
<img src ="http://www.blogjava.net/josson/aggbug/168927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/josson/" target="_blank">josson</a> 2007-12-20 09:25 <a href="http://www.blogjava.net/josson/archive/2007/12/20/168927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring 的事务配置方式</title><link>http://www.blogjava.net/josson/archive/2007/05/17/117964.html</link><dc:creator>josson</dc:creator><author>josson</author><pubDate>Thu, 17 May 2007 00:54:00 GMT</pubDate><guid>http://www.blogjava.net/josson/archive/2007/05/17/117964.html</guid><wfw:comment>http://www.blogjava.net/josson/comments/117964.html</wfw:comment><comments>http://www.blogjava.net/josson/archive/2007/05/17/117964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/josson/comments/commentRss/117964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/josson/services/trackbacks/117964.html</trackback:ping><description><![CDATA[<strong>1.0的标准事务配置示例:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"><strong>&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>bean&nbsp;</strong></span><span style="color: #ff0000;"><strong>id</strong></span><span style="color: #0000ff;"><strong>="baseTxService"</strong></span><span style="color: #ff0000;"><strong>&nbsp;class</strong></span><span style="color: #0000ff;"><strong>="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"</strong></span><span style="color: #ff0000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abstract</strong></span><span style="color: #0000ff;"><strong>="true"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>property&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="transactionManager"</strong></span><span style="color: #ff0000;"><strong>&nbsp;ref</strong></span><span style="color: #0000ff;"><strong>="transactionManager"</strong></span><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>property&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="proxyTargetClass"</strong></span><span style="color: #ff0000;"><strong>&nbsp;value</strong></span><span style="color: #0000ff;"><strong>="true"</strong></span><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>property&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="transactionAttributes"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>props</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>prop&nbsp;</strong></span><span style="color: #ff0000;"><strong>key</strong></span><span style="color: #0000ff;"><strong>="get*"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>PROPAGATION_REQUIRED,readOnly</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>prop</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>prop&nbsp;</strong></span><span style="color: #ff0000;"><strong>key</strong></span><span style="color: #0000ff;"><strong>="find*"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>PROPAGATION_REQUIRED,readOnly</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>prop</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>prop&nbsp;</strong></span><span style="color: #ff0000;"><strong>key</strong></span><span style="color: #0000ff;"><strong>="save*"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>PROPAGATION_REQUIRED</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>prop</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>prop&nbsp;</strong></span><span style="color: #ff0000;"><strong>key</strong></span><span style="color: #0000ff;"><strong>="remove*"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>PROPAGATION_REQUIRED</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>prop</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>props</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>property</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>property&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="preInterceptors"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>list</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>ref&nbsp;</strong></span><span style="color: #ff0000;"><strong>bean</strong></span><span style="color: #0000ff;"><strong>="methodSecurityInterceptor"</strong></span><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>list</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>property</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>bean</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>bean&nbsp;</strong></span><span style="color: #ff0000;"><strong>id</strong></span><span style="color: #0000ff;"><strong>="userManager"</strong></span><span style="color: #ff0000;"><strong>&nbsp;parent</strong></span><span style="color: #0000ff;"><strong>="baseTxService"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>property&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="target"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>bean&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="com.scommnet.acl.service.UserManager"</strong></span><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>property</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>bean</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span></div>
<br></strong><strong>2.0的事务配置示例:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"><strong>&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>aop:config&nbsp;</strong></span><span style="color: #ff0000;"><strong>proxy-target-class</strong></span><span style="color: #0000ff;"><strong>="true"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>aop:advisor&nbsp;</strong></span><span style="color: #ff0000;"><strong>pointcut</strong></span><span style="color: #0000ff;"><strong>="execution(* com.scommnet.acl.*Manager.*(..))"</strong></span><span style="color: #ff0000;"><strong>&nbsp;advice-ref</strong></span><span style="color: #0000ff;"><strong>="txAdvice"</strong></span><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>aop:advisor&nbsp;</strong></span><span style="color: #ff0000;"><strong>pointcut</strong></span><span style="color: #0000ff;"><strong>="execution(* com.scommnet.sms.*Manager.save(..))"</strong></span><span style="color: #ff0000;"><strong>&nbsp;advice-ref</strong></span><span style="color: #0000ff;"><strong>="fooAdvice"</strong></span><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>aop:config</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;</strong></span><span style="color: #800000;"><strong>tx:advice&nbsp;</strong></span><span style="color: #ff0000;"><strong>id</strong></span><span style="color: #0000ff;"><strong>="txAdvice"</strong></span><span style="color: #ff0000;"><strong>&nbsp;transaction-manager</strong></span><span style="color: #0000ff;"><strong>="transactionManager"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>tx:attributes</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>tx:method&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="get*"</strong></span><span style="color: #0000ff;"><strong> </strong></span><strong><strong><span style="color: #ff0000;"><strong>read-only</strong></span><span style="color: #0000ff;"><strong>="true"</strong></span></strong></strong><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>tx:method&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="find*"</strong></span><span style="color: #0000ff;"><strong> </strong></span><strong><strong><span style="color: #ff0000;"><strong>read-only</strong></span><span style="color: #0000ff;"><strong>="true"</strong></span></strong></strong><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>tx:method&nbsp;</strong></span><span style="color: #ff0000;"><strong>name</strong></span><span style="color: #0000ff;"><strong>="*"</strong></span><span style="color: #ff0000;"><strong> </strong></span><span style="color: #0000ff;">rollback-for="BusinessException"</span><span style="color: #0000ff;"><strong>/&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>tx:attributes</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>tx:advice</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>bean&nbsp;</strong></span><span style="color: #ff0000;"><strong>id</strong></span><span style="color: #0000ff;"><strong>="userManager"</strong></span><span style="color: #ff0000;"><strong>&nbsp;class</strong></span><span style="color: #0000ff;"><strong>="com.scommnet.acl.service.UserManager"</strong></span><span style="color: #0000ff;"><strong>/&gt;</strong></span></div>
<br></strong>pointcut语法说明，Spring<a  href="http://www.redsaga.com/spring_ref/2.0RC2/html/aop.html#d0e6939" target="blank">参考文档6.2.3.4里</a>有完整说明。<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">execution(modifiers-pattern?&nbsp;ret-type-pattern&nbsp;declaring-type-pattern?&nbsp;name-pattern(param-pattern)&nbsp;throws-pattern?)</span></div>
<br>其中带问号的modifiers-pattern?(public/protected) 和 declaring-type-pattern? throws-pattern? 可以不填
<p>可见execution(* *..UserManager.save(..))</p>
<p>第一颗* 代表ret-type-pattern 返回值可任意，*..UserManager 代表任意Pacakge里的BookManager类。
<br>如果写成com.xyz.service.* 则代表com.xyz.service下的任意类，com.xyz.service..* com.xyz.service则代表com.xyz.service及其子package下的任意类，save代表save方法，也可以写save* 代表saveBook()等方法
。</p>
<p>(..) 匹配0个参数或者多个参数的，任意类型
<br>(x,..) 第一个参数的类型必须是X
<br>(x,,,s,..) 匹配至少4个参数，第一个参数必须是x类型，第二个和第三个参数可以任意，第四个必须是s类型。 </p>
注意name-pattern千万不要写成*..*Manager
，这样子的话会把所有第三方类库的Manager比如Spring的PlatformTranstationManager
也加入aop，非常危险。所以最好还是加上项目的package前缀，如com.sample<br><img src ="http://www.blogjava.net/josson/aggbug/117964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/josson/" target="_blank">josson</a> 2007-05-17 08:54 <a href="http://www.blogjava.net/josson/archive/2007/05/17/117964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(收藏)Servlet(或者Filter，或者Listener)中使用spring的IOC容器</title><link>http://www.blogjava.net/josson/archive/2007/04/25/113573.html</link><dc:creator>josson</dc:creator><author>josson</author><pubDate>Wed, 25 Apr 2007 09:08:00 GMT</pubDate><guid>http://www.blogjava.net/josson/archive/2007/04/25/113573.html</guid><wfw:comment>http://www.blogjava.net/josson/comments/113573.html</wfw:comment><comments>http://www.blogjava.net/josson/archive/2007/04/25/113573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/josson/comments/commentRss/113573.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/josson/services/trackbacks/113573.html</trackback:ping><description><![CDATA[<span class="tpc_content">  在Servlet或者filter或者Listener中使用spring的IOC容器的方法是：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">WebApplicationContext&nbsp;webApplicationContext&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;"> <br>&nbsp;&nbsp;&nbsp; WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());&nbsp;</span></div>
<br>由于spring是注入的对象放在ServletContext中的，所以可以直接在ServletContext取出WebApplicationContext 对象：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">WebApplicationContext&nbsp;webApplicationContext&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;"> <br>&nbsp;&nbsp;&nbsp; (WebApplicationContext)&nbsp;servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);</span></div>
<br>事实上WebApplicationContextUtils.getWebApplicationContext方法就是使用上面的代码实现的，建议使用上面上面的静态方法</span> <img src ="http://www.blogjava.net/josson/aggbug/113573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/josson/" target="_blank">josson</a> 2007-04-25 17:08 <a href="http://www.blogjava.net/josson/archive/2007/04/25/113573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>