﻿<?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</title><link>http://www.blogjava.net/huyi0616/category/28656.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 30 Apr 2010 15:25:06 GMT</lastBuildDate><pubDate>Fri, 30 Apr 2010 15:25:06 GMT</pubDate><ttl>60</ttl><item><title>Spring in Action 学习笔记—第五章 事务管理</title><link>http://www.blogjava.net/huyi0616/archive/2010/04/27/319479.html</link><dc:creator>一杯清茶</dc:creator><author>一杯清茶</author><pubDate>Tue, 27 Apr 2010 06:24:00 GMT</pubDate><guid>http://www.blogjava.net/huyi0616/archive/2010/04/27/319479.html</guid><wfw:comment>http://www.blogjava.net/huyi0616/comments/319479.html</wfw:comment><comments>http://www.blogjava.net/huyi0616/archive/2010/04/27/319479.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huyi0616/comments/commentRss/319479.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huyi0616/services/trackbacks/319479.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自：http://www.blogjava.net/msmary/articles/155398.html本章是第四章的延续，作者向读者展示了如何使用Spring事务管理来保证数据一致性。Spring对事务的管理有丰富的支持，程序控制的和声明式的都有。在本章中，我们会学习到如何把应用程序的代码放置在事务中，以确保在一切顺利时，所有的成果都被固定下来；一旦其中有一步出错，那么整个事情就像没有发...&nbsp;&nbsp;<a href='http://www.blogjava.net/huyi0616/archive/2010/04/27/319479.html'>阅读全文</a><img src ="http://www.blogjava.net/huyi0616/aggbug/319479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huyi0616/" target="_blank">一杯清茶</a> 2010-04-27 14:24 <a href="http://www.blogjava.net/huyi0616/archive/2010/04/27/319479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring事务配置的五种方式</title><link>http://www.blogjava.net/huyi0616/archive/2010/04/27/319478.html</link><dc:creator>一杯清茶</dc:creator><author>一杯清茶</author><pubDate>Tue, 27 Apr 2010 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/huyi0616/archive/2010/04/27/319478.html</guid><wfw:comment>http://www.blogjava.net/huyi0616/comments/319478.html</wfw:comment><comments>http://www.blogjava.net/huyi0616/archive/2010/04/27/319478.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huyi0616/comments/commentRss/319478.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huyi0616/services/trackbacks/319478.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自：http://www.blogjava.net/robbie/archive/2009/04/05/264003.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前段时间对Spring的事务配置做了比较深入的研究，在此之间对Spring的事务配置虽说也配置过，但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只...&nbsp;&nbsp;<a href='http://www.blogjava.net/huyi0616/archive/2010/04/27/319478.html'>阅读全文</a><img src ="http://www.blogjava.net/huyi0616/aggbug/319478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huyi0616/" target="_blank">一杯清茶</a> 2010-04-27 14:19 <a href="http://www.blogjava.net/huyi0616/archive/2010/04/27/319478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring拦截器来控制URL路径的转发 </title><link>http://www.blogjava.net/huyi0616/archive/2009/10/27/299867.html</link><dc:creator>一杯清茶</dc:creator><author>一杯清茶</author><pubDate>Tue, 27 Oct 2009 01:22:00 GMT</pubDate><guid>http://www.blogjava.net/huyi0616/archive/2009/10/27/299867.html</guid><wfw:comment>http://www.blogjava.net/huyi0616/comments/299867.html</wfw:comment><comments>http://www.blogjava.net/huyi0616/archive/2009/10/27/299867.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huyi0616/comments/commentRss/299867.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huyi0616/services/trackbacks/299867.html</trackback:ping><description><![CDATA[<div class="postTitle">&nbsp;</div>
<div class="postText">
<div class="dp-highlighter">
<div class="tools">struts的代码&nbsp;</div>
<ol class="dp-j">
    <li><span><span class="keyword">import</span><span>&nbsp;javax.servlet.http.HttpServletRequest; &nbsp;&nbsp;</span></span>
    <li><span class="keyword">import</span><span>&nbsp;org.aopalliance.intercept.MethodInterceptor; &nbsp;&nbsp;</span></span>
    <li><span class="keyword">import</span><span>&nbsp;org.aopalliance.intercept.MethodInvocation; &nbsp;&nbsp;</span></span>
    <li><span class="keyword">import</span><span>&nbsp;org.apache.struts.action.ActionMapping; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;</span>
    <li><span class="comment">/** </span>&nbsp;</span>
    <li><span><span class="comment">&nbsp;*&nbsp;这是一个拦截器,用来验证用户是否通过验证 </span>&nbsp;</span>
    <li><span><span class="comment">&nbsp;* </span>&nbsp;</span>
    <li><span><span class="comment">&nbsp;*/</span><span>&nbsp;&nbsp;</span></span>
    <li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;AuthorityInterceptor&nbsp;</span><span class="keyword">implements</span><span>&nbsp;MethodInterceptor&nbsp;{ &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;Object&nbsp;invoke(MethodInvocation&nbsp;invocation)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Throwable &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest&nbsp;request&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ActionMapping&nbsp;mapping&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object[]&nbsp;args&nbsp;=&nbsp;invocation.getArguments(); &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;</span><span class="number">0</span><span>&nbsp;;&nbsp;i&nbsp;&lt;&nbsp;args.length&nbsp;;&nbsp;i++&nbsp;) &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(args[i]&nbsp;</span><span class="keyword">instanceof</span><span>&nbsp;HttpServletRequest)&nbsp;request&nbsp;=&nbsp;(HttpServletRequest)args[i]; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(args[i]&nbsp;</span><span class="keyword">instanceof</span><span>&nbsp;ActionMapping)&nbsp;mapping&nbsp;=&nbsp;(ActionMapping)args[i]; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(&nbsp;request.getSession().getAttribute(</span><span class="string">"adminname"</span><span>)&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>) &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;invocation.proceed(); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;mapping.findForward(</span><span class="string">"login"</span><span>); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li><span>}&nbsp;&nbsp;</span> </li>
</ol>
</div>
<pre class="java" style="display: none" name="code">import javax.servlet.http.HttpServletRequest;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.struts.action.ActionMapping;
/**
* 这是一个拦截器,用来验证用户是否通过验证
*
*/
public class AuthorityInterceptor implements MethodInterceptor {
public Object invoke(MethodInvocation invocation) throws Throwable
{
HttpServletRequest request = null;
ActionMapping mapping = null;
Object[] args = invocation.getArguments();
for (int i = 0 ; i &lt; args.length ; i++ )
{
if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];
if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
}
if ( request.getSession().getAttribute("adminname") != null)
{
return invocation.proceed();
}
else
{
return mapping.findForward("login");
}
}
}</pre>
<br />
<br />
配置文件: <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码</div>
</div>
<ol class="dp-j">
    <li><span><span>&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">"org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"</span><span>&gt; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">"beanNames"</span><span>&gt; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/vaiiduser&lt;/value&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/admin&lt;/value&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/phone&lt;/value&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=</span><span class="string">"interceptorNames"</span><span>&gt; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;authorityInterceptor&lt;/value&gt;&nbsp; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&lt;/bean&gt; &nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;</span>
    <li><span>&lt;bean&nbsp;id=</span><span class="string">"authorityInterceptor"</span><span>&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">"org.mmc.utils.AuthorityInterceptor"</span><span>/&gt;</span></li>
</ol>
</div>
</div>
<img src ="http://www.blogjava.net/huyi0616/aggbug/299867.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huyi0616/" target="_blank">一杯清茶</a> 2009-10-27 09:22 <a href="http://www.blogjava.net/huyi0616/archive/2009/10/27/299867.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>