﻿<?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/wuxufeng8080/category/12031.html</link><description>弱水三千，只取一瓢，便能解渴；佛法无边，奉行一法，便能得益。</description><language>zh-cn</language><lastBuildDate>Mon, 12 Mar 2018 12:55:29 GMT</lastBuildDate><pubDate>Mon, 12 Mar 2018 12:55:29 GMT</pubDate><ttl>60</ttl><item><title>spring quartz 串行配置</title><link>http://www.blogjava.net/wuxufeng8080/archive/2018/03/12/433096.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Mon, 12 Mar 2018 11:58:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2018/03/12/433096.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/433096.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2018/03/12/433096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/433096.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/433096.html</trackback:ping><description><![CDATA[<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&lt;bean id="jobDetail7"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyname="targetObject" ref="billingBillTask"&gt;&lt;/property&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyname="targetMethod" value="executeInternal" /&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyname="concurrent" value="false" /&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bean&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;beanid="billingBillTask"class="com.dangdang.tms.job.schedule.bms.BillingBillTask"/&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;beanid="cronTriggerBean7" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyname="jobDetail" ref="jobDetail7"&gt;&lt;/property&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyname="cronExpression" value="0/5 * * * * ?"&gt;&lt;/property&gt;</p>
<p style="box-sizing: border-box; text-align: justify; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-style: normal; text-indent: 0px; margin: 0px 0px 16px; min-height: 26px; padding-left: 0px; padding-right: 0px; font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,79,79); font-size: 16px; font-weight: normal; word-spacing: 0px; padding-top: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br /><br />参考 <a href="http://blog.csdn.net/lkforce/article/details/51841890">http://blog.csdn.net/lkforce/article/details/51841890</a></p><img src ="http://www.blogjava.net/wuxufeng8080/aggbug/433096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2018-03-12 19:58 <a href="http://www.blogjava.net/wuxufeng8080/archive/2018/03/12/433096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring mvc @ExceptionHandler 异常处理</title><link>http://www.blogjava.net/wuxufeng8080/archive/2016/11/08/431964.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Tue, 08 Nov 2016 00:32:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2016/11/08/431964.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/431964.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2016/11/08/431964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/431964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/431964.html</trackback:ping><description><![CDATA[<div>spring mvc 统一的异常处理，有两种方式。<br />一、exceptionResolver<br />二、ExceptionHandler <br /><br />两者不能同时配置。如果配置了第一种，则第二种无效。就因为这个原因，找了一天的问题。<br /><br />ExceptionHandler 通过注解的方式，进行配置，只需要在某个controller 中设置了这个注解，则这个controller中的所有异常都会通过这个方法进行处理。<br /><br />比如rest controller，增加一个
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;@ExceptionHandler<br /><img id="Codehighlighter1_83_566_Open_Image" onclick="this.style.display='none'; Codehighlighter1_83_566_Open_Text.style.display='none'; Codehighlighter1_83_566_Closed_Image.style.display='inline'; Codehighlighter1_83_566_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_83_566_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_83_566_Closed_Text.style.display='none'; Codehighlighter1_83_566_Open_Image.style.display='inline'; Codehighlighter1_83_566_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;exp(HttpServletRequest&nbsp;request,&nbsp;Exception&nbsp;ex)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_83_566_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_83_566_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;map&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HashMap();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.error(</span><span style="color: #000000">"</span><span style="color: #000000">error,</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;UUID.randomUUID().toString(),&nbsp;ex);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">ex</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;ex);&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;msg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ex.getMessage();</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(</span><span style="color: #000000">"</span><span style="color: #000000">msg</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;msg);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;rtnjson&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;JSONUtil.objectToJson(map);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">json</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;rtnjson);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">json</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span></div><br />这样，这个controler中的异常，都会由这个异常处理方法，进行统一处理，生成异常json。避免在各个方法中通过try catch 的方法，进行异常处理。<br /></div><img src ="http://www.blogjava.net/wuxufeng8080/aggbug/431964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2016-11-08 08:32 <a href="http://www.blogjava.net/wuxufeng8080/archive/2016/11/08/431964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring MVC 使用中的注意事项</title><link>http://www.blogjava.net/wuxufeng8080/archive/2010/12/30/341996.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 30 Dec 2010 07:51:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2010/12/30/341996.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/341996.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2010/12/30/341996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/341996.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/341996.html</trackback:ping><description><![CDATA[<span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">&nbsp;&nbsp; &nbsp;ModelAndView中保存了要传递给视图的对象和具体要使用的视图文件，自2.0起， Spring MVC提供了Convention over Configuration的机制，大大简化了代码与配置。简单地说，名字以Controller结尾的控制器类都会被映射为相应的地址，ListArticleController对应/listarticle*，如果是MultiActionController则会被映射为一个目录；向ModelAndView添加对象时可以不用指定键（key），单一对象的键取决于类名，比如x.y.User的键是user，而某一类对象的 Set、List或数组则稍有些复杂，取第一个对象的类名加上&#8220;List&#8221;作为它的键，比如这里的articles是一个存放Article对象的 List，它的键就是articleList；</span><br />
也可以通过执行key，来指定变量名称
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/341996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2010-12-30 15:51 <a href="http://www.blogjava.net/wuxufeng8080/archive/2010/12/30/341996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring 事务的回滚问题</title><link>http://www.blogjava.net/wuxufeng8080/archive/2010/12/14/340637.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Tue, 14 Dec 2010 06:01:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2010/12/14/340637.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/340637.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2010/12/14/340637.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/340637.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/340637.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;spring的事物配置，默认状态下，只针对　RuntimeException　进行回滚。<br />
而像ＳＱＬＥｘｃｅｐｔｉｏｎ并不是RuntimeException，所以这里需要特别注意。<br />
<br />
这里困扰了我很久，一直没有想明白为什么在一个事务里面，部分成功，部分失败。可能就是这个原因导致的。<br />
也就是说，一些系统级别的异常，前期都需要转化成　RuntimeException　。这样就可以进行回滚了。<br />
<br />
但是这样的只需要修改底层，另外一个偷懒的方法，在每个ｓｅｒｖｉｃｅ类上直接指定rollback = Exception.class。这样所有的异常都会回滚。但是这样有没有副作用，但是不清楚。<br />
<br />
异常一直是我没有搞定的一块内容之一，称这个机会研究一下。<br />
为什么需要分check 和unckeck，两者有什么不动点。<br />
如果都是用uncheck，会不会有什么问题？<br />
待续。。。
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/340637.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2010-12-14 14:01 <a href="http://www.blogjava.net/wuxufeng8080/archive/2010/12/14/340637.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring mvc的常见问题</title><link>http://www.blogjava.net/wuxufeng8080/archive/2008/03/24/188156.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Mon, 24 Mar 2008 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2008/03/24/188156.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/188156.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2008/03/24/188156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/188156.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/188156.html</trackback:ping><description><![CDATA[<p>1，使用new ModelAndView来返回页面，变量需要跟在这个类中直接返回，使用modelMap.addAttribute("message", message);在页面上使用EL表达式无法获得变量。感觉使用new ModelAndView回到页面不能同ModelMap同时使用。<br />
</p>
<p>2，form 的映射，spring mvc中，使用默认映射就可以，如果需要映射到一个对象中，直接在方法中指定这个对象声明就可以，这样form提交时会将属性绑定到同名的属性中。比原版的配置映射要简单很多，而且不需要继承FormBean类，比struts也简单，好用很多。</p>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/188156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2008-03-24 10:23 <a href="http://www.blogjava.net/wuxufeng8080/archive/2008/03/24/188156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring MVC Annotation</title><link>http://www.blogjava.net/wuxufeng8080/archive/2008/01/10/174255.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 10 Jan 2008 05:35:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2008/01/10/174255.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/174255.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2008/01/10/174255.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/174255.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/174255.html</trackback:ping><description><![CDATA[spring mvc 使用annotation进行controller配置<br />
注：两种urlmapping的模式不能同时使用，如果使用annotation就不能再配置springapp-servlet.xml的urlmapping。<br />
<br />
1、xml配置<br />
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;beans xmlns="http://www.springframework.org/schema/beans" <br />
&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
&nbsp;&nbsp;&nbsp; xmlns:p="http://www.springframework.org/schema/p" <br />
&nbsp;&nbsp;&nbsp; xmlns:context="http://www.springframework.org/schema/context"<br />
&nbsp;&nbsp;&nbsp; xsi:schemaLocation="<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.springframework.org/schema/beans <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.springframework.org/schema/beans/spring-beans-2.5.xsd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.springframework.org/schema/context <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.springframework.org/schema/context/spring-context-2.5.xsd"&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;context:component-scan base-package="com.ivo.web.action.spring" /&gt;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="viewClass"&gt;&lt;value&gt;org.springframework.web.servlet.view.JstlView&lt;/value&gt;&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="prefix"&gt;&lt;value&gt;/pages/&lt;/value&gt;&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="suffix"&gt;&lt;value&gt;.jsp&lt;/value&gt;&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&lt;/beans&gt;<br />
</p>
&nbsp;&nbsp;&nbsp; &lt;context:component-scan base-package="com.ivo.web.action.spring" /&gt;用于指明系统从哪个路径下寻找controller，然后提前初始化这些对象。<br />
<br />
2、web.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;跟一般的mvc配置没有区别。<br />
<br />
3、controller配置<br />
&nbsp;&nbsp;&nbsp;&nbsp;具体可以看spring的参考文件，有好几种配置。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;3.1&nbsp;在方法上配置mapping路径<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<p>@Controller<br />
public class HelloController {</p>
<p>&nbsp;@RequestMapping("/hello.do")<br />
&nbsp;public ModelAndView processImageUpload() throws IOException {<br />
&nbsp;&nbsp;System.out.println("hello");<br />
&nbsp;&nbsp;return new ModelAndView("org", "jsonString", "test");<br />
&nbsp;}</p>
<p>}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;3.2 在class上配置mapping路径，通过参数指定调用的方法<br />
</p>
<p>@Controller<br />
@RequestMapping("/hello.do")<br />
public class HelloController {</p>
<p><span class="bold"><strong>@RequestMapping(<em><span lang="EN-US" style="font-size: 10.5pt; color: black; font-family: Arial; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">params = "action=save"</span></em>)</strong></span><br />
&nbsp;public ModelAndView save() throws IOException {<br />
&nbsp;&nbsp;System.out.println("hello");<br />
&nbsp;&nbsp;return new ModelAndView("org", "jsonString", "test");<br />
&nbsp;}</p>
<p>}<br />
<br />
方法的返回值可以是null，string 或者ModelAndView，都支持。<br />
<br />
以上是系统暂时用到的，其他的以后再研究。</p>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/174255.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2008-01-10 13:35 <a href="http://www.blogjava.net/wuxufeng8080/archive/2008/01/10/174255.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>