﻿<?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-大道自然</title><link>http://www.blogjava.net/iamlibo/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:21:45 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:21:45 GMT</pubDate><ttl>60</ttl><item><title>Spring 3.2  JPA2.0 XML 配置方式</title><link>http://www.blogjava.net/iamlibo/archive/2013/12/19/407775.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Thu, 19 Dec 2013 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2013/12/19/407775.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/407775.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2013/12/19/407775.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/407775.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/407775.html</trackback:ping><description><![CDATA[<span style="font-size:11.0pt; font-family:宋体;Times New Roman&quot;;">使用</span><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">maven</span><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;">工程，</span><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">pom.xml</span><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;">文件如下<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.springframework<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>spring-context<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>3.2.4.RELEASE<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.springframework<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>spring-orm<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>3.2.4.RELEASE<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.quartz-scheduler<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>quartz<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>1.8.5<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.hibernate.javax.persistence<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>hibernate-jpa-2.0-api<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>1.0.1.Final<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.hibernate<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>hibernate-core<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>4.2.8.Final<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;for&nbsp;JPA,&nbsp;use&nbsp;hibernate-entitymanager&nbsp;instead&nbsp;of&nbsp;hibernate-core&nbsp;</span><span style="color: #008000; ">--&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.hibernate<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>hibernate-entitymanager<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>4.2.8.Final<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>mysql<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>mysql-connector-java<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>5.1.27<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;&lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;cglib&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;cglib&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.0&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;</span><span style="color: #008000; ">--&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.springframework<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>spring-test<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>3.2.4.RELEASE<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">scope</span><span style="color: #0000FF; ">&gt;</span>test<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">scope</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">&gt;</span></div><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;"><br />dao接口如下：<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test.dao;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-19.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">interface</span>&nbsp;IDao&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;save(Object&nbsp;entity);<br />}</div><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;"><br />dao实现类如下：<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test.dao;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.stereotype.Component;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;javax.persistence.EntityManager;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.persistence.PersistenceContext;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-19.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />@Component<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;DaoJpaImpl&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;IDao&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@PersistenceContext<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;EntityManager&nbsp;entityManager;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;save(Object&nbsp;entity)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entityManager.persist(entity);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;"><br />service 接口：<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test.service;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;cn.test.entity.User;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-19.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">interface</span>&nbsp;UserService&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;save(User&nbsp;user);<br />}</div><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;"><br />service 实现类：<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test.service;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;cn.test.dao.IDao;<br /><span style="color: #0000FF; ">import</span>&nbsp;cn.test.entity.User;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.beans.factory.annotation.Autowired;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.stereotype.Service;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.transaction.annotation.Transactional;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-19.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />@Service<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;UserServiceImpl&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;UserService&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Autowired<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;IDao&nbsp;iDao;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">@Transactional(propagation=&nbsp;Propagation.REQUIRED)</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;@Transactional(readOnly&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;save(User&nbsp;user)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iDao.save(user);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;">实体类：<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test.entity;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;javax.persistence.Entity;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.persistence.Id;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.persistence.Table;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.io.Serializable;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-19.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />@Entity<br />@Table(name&nbsp;=&nbsp;"myUser")<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;User&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;Serializable{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Id<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;String&nbsp;id;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;String&nbsp;name;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;age;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;getId()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;id;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setId(String&nbsp;id)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.id&nbsp;=&nbsp;id;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;getAge()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;age;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setAge(<span style="color: #0000FF; ">int</span>&nbsp;age)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.age&nbsp;=&nbsp;age;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;getName()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;name;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setName(String&nbsp;name)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.name&nbsp;=&nbsp;name;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;"><br />spring-config.xml 其中</span><span style="color: #800000; font-size: 13px; background-color: #eeeeee;">task相关内容可以删除</span><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><br /><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">beans&nbsp;</span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:tx</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/tx"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:task</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/task"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:context</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/context"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans.xsd&nbsp;http://www.springframework.org/schema/task<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/task/spring-task-3.1.xsd&nbsp;http://www.springframework.org/schema/context<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context/spring-context-3.1.xsd&nbsp;http://www.springframework.org/schema/tx&nbsp;http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">context:annotation-config</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">context:component-scan&nbsp;</span><span style="color: #FF0000; ">base-package</span><span style="color: #0000FF; ">="cn.test"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">task:annotation-driven</span><span style="color: #0000FF; ">/&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="em"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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: #FF0000; ">&nbsp;ref</span><span style="color: #0000FF; ">="dataSource"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="packagesToScan"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="cn.test.entity"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="jpaVendorAdapter"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="jpaProperties"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">props</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.hbm2ddl.auto"</span><span style="color: #0000FF; ">&gt;</span>update<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.dialect"</span><span style="color: #0000FF; ">&gt;</span>org.hibernate.dialect.MySQL5Dialect<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">props</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<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.springframework.jdbc.datasource.DriverManagerDataSource"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="com.mysql.jdbc.Driver"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="jdbc:mysql://localhost:3306/spring_jpa"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="root"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="123456"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<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; ">&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.orm.jpa.JpaTransactionManager"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="entityManagerFactory"</span><span style="color: #FF0000; ">&nbsp;ref</span><span style="color: #0000FF; ">="em"</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;可以使用@Transactional配置事务&nbsp;</span><span style="color: #008000; ">--&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">tx:annotation-driven&nbsp;</span><span style="color: #FF0000; ">transaction-manager</span><span style="color: #0000FF; ">="transactionManager"</span><span style="color: #0000FF; ">/&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="persistenceExceptionTranslationPostProcessor"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"</span><span style="color: #0000FF; ">/&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">beans</span><span style="color: #0000FF; ">&gt;</span></div><span style="font-size:11.0pt;font-family:宋体;Times New Roman&quot;;"><br />测试类：<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test.service;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;cn.test.entity.User;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.junit.Test;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.junit.runner.RunWith;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.beans.factory.annotation.Autowired;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.test.context.ContextConfiguration;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-19.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />@RunWith(SpringJUnit4ClassRunner.<span style="color: #0000FF; ">class</span>)<br />@ContextConfiguration(locations&nbsp;=&nbsp;"classpath:spring-config.xml")<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;UserServiceImplTest&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Autowired<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;UserService&nbsp;userService;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testSave()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;User();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setId("u_id");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setName("u_name");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setAge(23);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userService.save(user);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><span style="font-size: 11pt; font-family: 宋体;"><br />运行Junit测试就可以了。连接的是MySQL数据库<br /><br />end.<br /></span><img src ="http://www.blogjava.net/iamlibo/aggbug/407775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2013-12-19 16:17 <a href="http://www.blogjava.net/iamlibo/archive/2013/12/19/407775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring 自动任务执行CMD 命令</title><link>http://www.blogjava.net/iamlibo/archive/2013/12/18/407742.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Wed, 18 Dec 2013 08:35:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2013/12/18/407742.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/407742.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2013/12/18/407742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/407742.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/407742.html</trackback:ping><description><![CDATA[有一个自动备份mysql 数据库的需求，windows 下可以写一个bat文件，然后加入到计划任务中设置执行，可是伟大的Windows系统加入计划任务有时间却不执行，而且设置计划任务也挺复杂（写脚本把执行备份的脚本加入计划中）。那就用程序写一个吧备份的功能吧。还是调用备份的脚本，自动任务部分使用Spring3的@Scheduled来实现。<br />pom.xml文件中依赖的jar：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.springframework<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>spring-context<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>3.1.4.RELEASE<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.quartz-scheduler<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>quartz<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>1.8.5<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">&gt;</span></div>spring-config.xml配置如下：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><br /><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">beans&nbsp;</span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:task</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/task"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:context</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/context"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans.xsd&nbsp;http://www.springframework.org/schema/task<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/task/spring-task-3.1.xsd&nbsp;http://www.springframework.org/schema/context<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context/spring-context-3.1.xsd"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">context:component-scan&nbsp;</span><span style="color: #FF0000; ">base-package</span><span style="color: #0000FF; ">="cn.test"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">task:annotation-driven</span><span style="color: #0000FF; ">/&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">beans</span><span style="color: #0000ff;">&gt;</span></div><br />定义一个接口，写一个实现类。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-18.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">interface</span>&nbsp;SchedulerService&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;doSome();<br />}</div><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.scheduling.annotation.Scheduled;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.stereotype.Component;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;java.io.*;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.util.Calendar;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-18.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />@Component<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;SchedulerServiceImpl&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;SchedulerService&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Scheduled(cron&nbsp;=&nbsp;"0/5&nbsp;*&nbsp;*&nbsp;&nbsp;*&nbsp;*&nbsp;?&nbsp;")&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">每5秒执行一次</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;doSome()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("do&nbsp;soming<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />"&nbsp;+&nbsp;Calendar.getInstance().getTime());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Runtime&nbsp;runtime&nbsp;=&nbsp;Runtime.getRuntime();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;p&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileWriter&nbsp;fw&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">此处执行的是ipconfig命令，可以换成任何cmd&nbsp;里的命令。</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;runtime.exec("cmd&nbsp;/c&nbsp;ipconfig&nbsp;/all");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;BufferedReader(<span style="color: #0000FF; ">new</span>&nbsp;InputStreamReader(p.getInputStream(),&nbsp;"GBK"));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;将命令执行结果保存到文件中</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fw&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;FileWriter(<span style="color: #0000FF; ">new</span>&nbsp;File("C:/temp/cmdout.txt"));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;((line&nbsp;=&nbsp;reader.readLine())&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fw.write(line&nbsp;+&nbsp;"\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fw.flush();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(IOException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">finally</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(p&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.destroy();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(fw&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fw.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(p&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.getOutputStream().close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(IOException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("do&nbsp;soming<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />"&nbsp;+&nbsp;Calendar.getInstance().getTime());<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><br />测试类(注意：使用junit是不能测试自动任务地！)<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span>&nbsp;cn.test;<br /><br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.context.ApplicationContext;<br /><span style="color: #0000FF; ">import</span>&nbsp;org.springframework.context.support.ClassPathXmlApplicationContext;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Created&nbsp;by&nbsp;libo&nbsp;on&nbsp;13-12-18.<br />&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Test&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String[]&nbsp;args){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ApplicationContext&nbsp;context&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;ClassPathXmlApplicationContext("/spring-config.xml");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("请等待5秒<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />让任务飞一会儿!");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><br />end.<img src ="http://www.blogjava.net/iamlibo/aggbug/407742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2013-12-18 16:35 <a href="http://www.blogjava.net/iamlibo/archive/2013/12/18/407742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring mvc 返回JSON 在IE 下提示下载 解决办法</title><link>http://www.blogjava.net/iamlibo/archive/2013/11/21/406646.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Thu, 21 Nov 2013 11:30:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2013/11/21/406646.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/406646.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2013/11/21/406646.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/406646.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/406646.html</trackback:ping><description><![CDATA[在IE低版本下接收Spring MVC @ResponseBody 返回的JSON 会提示下载保存。在chrome下没有问题。<br />解决办法 是：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">mvc:annotation-driven&nbsp;</span><span style="color: #FF0000; ">ignoreDefaultModelOnRedirect</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;validator</span><span style="color: #0000FF; ">="validator"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">mvc:message-converters&nbsp;</span><span style="color: #FF0000; ">register-defaults</span><span style="color: #0000FF; ">="false"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="org.springframework.http.converter.ByteArrayHttpMessageConverter"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="org.springframework.http.converter.StringHttpMessageConverter"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="supportedMediaTypes"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="text/plain;charset=UTF-8"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="supportedMediaTypes"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="text/plain;charset=UTF-8"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">mvc:message-converters</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">mvc:annotation-driven</span><span style="color: #0000FF; ">&gt;</span></div><br />如果提示 http 406 错误，将方法注释中的&nbsp;<span style="font-family: Arial; line-height: 26px; background-color: #ffffff;">将produces 的值改为application/json;charset=utf-8</span><br />或去掉即可以正常访问。<br /><img src ="http://www.blogjava.net/iamlibo/aggbug/406646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2013-11-21 19:30 <a href="http://www.blogjava.net/iamlibo/archive/2013/11/21/406646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bat设置环境变量 启动mysql非安装版服务 启动tomcat(转)</title><link>http://www.blogjava.net/iamlibo/archive/2013/11/13/406308.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Wed, 13 Nov 2013 11:04:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2013/11/13/406308.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/406308.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2013/11/13/406308.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/406308.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/406308.html</trackback:ping><description><![CDATA[<div><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">@echo off&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">if exist "%CATALINA_HOME%" (goto update_CATALINA_HOME) else (goto create_CATALINA_HOME)&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">:create_CATALINA_HOME&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">wmic ENVIRONMENT create name="CATALINA_HOME",username="&lt;system&gt;",VariableValue="%cd%\tomcat"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">:update_CATALINA_HOME&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">wmic ENVIRONMENT set name="CATALINA_HOME",username="&lt;system&gt;",VariableValue="%cd%\tomcat"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">if exist "%JAVA_HOME%" (goto update_JAVA_HOME) else (goto create_JAVA_HOME)&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">:create_JAVA_HOME&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">wmic ENVIRONMENT create name="JAVA_HOME",username="&lt;system&gt;",VariableValue="%cd%\jdk"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">:update_JAVA_HOME&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">wmic ENVIRONMENT set name="JAVA_HOME",username="&lt;system&gt;",VariableValue="%cd%\jdk"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">if exist "%ANT_HOME%" (goto update_ANT_HOME) else (goto create_ANT_HOME)&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">:create_ANT_HOME&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">wmic ENVIRONMENT create name="ANT_HOME",username="&lt;system&gt;",VariableValue="%cd%\ant"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">:update_ANT_HOME&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">wmic ENVIRONMENT set name="ANT_HOME",username="&lt;system&gt;",VariableValue="%cd%\ant"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">wmic ENVIRONMENT set name="CLASSPATH",username="&lt;system&gt;",VariableValue=".;%%JAVA_HOME%%\lib"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">@echo off&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">set MYSQL_HOME=%~dp0mysql&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo MYSQL_HOME=%MYSQL_HOME%&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">del /F my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo [client] &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo port = 3306 &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo default_character_set=utf-8 &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo [mysqld] &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo %server_default_character_set%=utf8 &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo default_storage_engine=InnoDB &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo basedir=%MYSQL_HOME%&gt;&gt;my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo datadir=%MYSQL_HOME%data&gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo innodb_data_file=ibdata1:50M;ibdata2:10M:autoextend &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo transaction-isolation=READ-COMMITTED &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo port=%server_port% &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo max_allowed_packet = 64M &gt;&gt; my.ini&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo "my.ini in %MYSQL_HOME% created."&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">set PATH=%MYSQL_HOME%\bin;%PATH%&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">if exist "%MYSQL_HOME%\bin\mysqld-nt.exe" call %MYSQL_HOME%\bin\mysqld-nt --install-manual "mysql" --defaults-file="%MYSQL_HOME%my.ini"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">if not exist "%MYSQL_HOME%\bin\mysqld-nt.exe" call %MYSQL_HOME%\bin\mysqld --install-manual "mysql" --defaults-file="%MYSQL_HOME%\my.ini"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">net start mysql&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">@echo off&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">if exist "%CATALINA_HOME%" go startup&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">echo Cannot find "CATALINA_HOME%"&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">:startup&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">call "%CATALINA_HOME%\bin\startup.bat" start&nbsp;</span></div><img src ="http://www.blogjava.net/iamlibo/aggbug/406308.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2013-11-13 19:04 <a href="http://www.blogjava.net/iamlibo/archive/2013/11/13/406308.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF2 传参太爽了</title><link>http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 13 Jul 2012 11:42:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/383050.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/383050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/383050.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jsf 传参数主要有以下几种方式：As to the cause, the&nbsp;&lt;f:attribute&gt;&nbsp;is specific to the component itself (populated during view build time), not to the iterated row (populated during view render time)....&nbsp;&nbsp;<a href='http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html'>阅读全文</a><img src ="http://www.blogjava.net/iamlibo/aggbug/383050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2012-07-13 19:42 <a href="http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Freemarker 开发组件—— title 组件</title><link>http://www.blogjava.net/iamlibo/archive/2012/07/06/382338.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 06 Jul 2012 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2012/07/06/382338.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/382338.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2012/07/06/382338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/382338.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/382338.html</trackback:ping><description><![CDATA[<p>Freemarker 可以通过macro 来定义一个组件（或者叫指令）。然后在需要的地方引用。
</p><p>比如，想在每增加页面的地方设置一下当前页的title，类似于这样：
</p><p><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/070612_0218_Freemarker1.png" alt=""/>
	</p><p><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/070612_0218_Freemarker2.png" alt=""/>
	</p><p>这样就可以定义一个名为title的组件，然后通过参数传入标题。
</p><p>Formtitle.ftl代码：
</p><p><span style="font-family:微软雅黑; font-size:10pt"><span style="color:#aa0000">&lt;#--表单标题 --&gt;</span>
		</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;#macro formTitle title=<span style="color:teal">""<span style="color:blue">&gt;</span>
			</span></span></p><p><span style="color:navy; font-family:微软雅黑; font-size:10pt">&lt;script type=<span style="color:teal">"text/<span style="text-decoration:underline">javascript</span>"<span style="color:navy">
					<span style="text-decoration:underline">src</span>=<span style="color:teal">"platform/<span style="text-decoration:underline">js</span>/jquery.corner.js"<span style="color:navy">&gt;&lt;/script&gt;</span>
					</span></span></span></span></p><p><span style="color:navy; font-family:微软雅黑; font-size:10pt">&lt;div id=<span style="color:teal">"<span style="text-decoration:underline">toolbar</span>"<span style="color:navy"> class=<span style="color:teal">"page_title"<span style="color:navy">&gt;</span>
					</span></span></span></span></p><p><span style="color:navy; font-family:微软雅黑; font-size:10pt">&lt;div id=<span style="color:teal">"page_title"<span style="color:navy">style=<span style="color:teal">"float:left; margin-top:3px; margin-left:5px;"<span style="color:navy">&gt;</span>
					</span></span></span></span></p><p><span style="color:navy; font-family:微软雅黑; font-size:10pt">&lt;img <span style="text-decoration:underline">src</span>=<span style="color:teal">"platform/images/ico.png"<span style="color:navy"> /&gt;<span style="color:#ff0080">${title}<span style="color:navy; text-decoration:underline">&lt;/div&gt;</span>
					</span></span></span></span></p><p><span style="color:navy; font-family:微软雅黑; font-size:10pt">&lt;div align=<span style="color:teal">"right"<span style="color:navy"> id=<span style="color:teal">"<span style="text-decoration:underline">btns</span>"<span style="color:navy"> style=<span style="color:teal">"padding-right:10px"<span style="color:navy">&gt;</span>
							</span></span></span></span></span></span></p><p><span style="font-family:微软雅黑; font-size:10pt"><span style="color:blue">&lt;#nested/&gt;</span>
		</span></p><p><span style="font-family:微软雅黑; font-size:10pt"><span style="color:navy; text-decoration:underline">&lt;/div&gt;</span>
		</span></p><p><span style="font-family:微软雅黑; font-size:10pt"><span style="color:navy; text-decoration:underline">&lt;/div&gt;</span>
		</span></p><p><span style="color:navy; font-family:微软雅黑; font-size:10pt">&lt;div class=<span style="color:teal">"clear"<span style="color:navy">/&gt;</span>
			</span></span></p><p><span style="color:navy; font-family:微软雅黑; font-size:10pt">&lt;script language=<span style="color:teal">"<span style="text-decoration:underline">javascript</span>"<span style="color:navy">&gt;</span>
			</span></span></p><p><span style="font-family:微软雅黑; font-size:10pt">    $('#page_title').corner("5px");
</span></p><p><span style="font-family:微软雅黑; font-size:10pt"><span style="color:navy">&lt;/script&gt;</span>
		</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;/#macro&gt;
</span></p><p>其中 <span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;#macro formTitle title=<span style="color:teal">""<span style="color:blue">&gt; 表示定义该组件名为 formTitle ,有一个参数title默认值为""，其他的内容就按照美工的设计写就要可以了。
</span></span></span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;#nested/&gt; 表示可以嵌入代码，即可以在使用时嵌入其他的内容。
</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">使用时：
</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;@formTitle title="用户增加"&gt;
</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;/@formTitle&gt;
</span></p><p>
 </p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;@formTitle title="用户增加"&gt;
</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">    这里是嵌入的内容，可以是HTML，也可以是freemarker 的内容。
</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">&lt;/@formTitle&gt;
</span></p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">看一下实际的效果图
</span></p><p><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/070612_0218_Freemarker3.png" alt=""/><span style="color:blue; font-family:微软雅黑; font-size:10pt">
		</span></p><p>
 </p><p><span style="color:blue; font-family:微软雅黑; font-size:10pt">
		</span> </p><img src ="http://www.blogjava.net/iamlibo/aggbug/382338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2012-07-06 10:19 <a href="http://www.blogjava.net/iamlibo/archive/2012/07/06/382338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>freemarker之模板开发(其它之自定义指令)</title><link>http://www.blogjava.net/iamlibo/archive/2012/06/21/381240.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Thu, 21 Jun 2012 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2012/06/21/381240.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/381240.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2012/06/21/381240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/381240.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/381240.html</trackback:ping><description><![CDATA[<p style="background: white"><span style="color:black"><span style="font-family:宋体; font-size:10pt">转自：<a href="http://fhd001.iteye.com/blog/1167764"/></span>http://fhd001.iteye.com/blog/1167764<span style="font-family:Helvetica; font-size:10pt">
			</span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:Helvetica">freemarker</span><span style="font-family:宋体">之模板开发</span><span style="font-family:Helvetica">(</span><span style="font-family:宋体">其它之自定义指令</span><span style="font-family:Helvetica">)
</span></span></p><p style="background: white"><span style="color:black; font-family:Helvetica; font-size:10pt">----------
</span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">自定义指令可以使用</span><span style="color:red"><span style="font-family:Helvetica">macro</span><span style="font-family:宋体">指令<span style="color:black">来定义，这是模板设计者所关心的内容。</span></span><span style="font-family:Helvetica">Java</span><span style="color:black"><span style="font-family:宋体">程序员若不想在模板中实现自定义指令，而是在</span><span style="font-family:Helvetica">java</span><span style="font-family:宋体">语言中实现指令的定义，这时可以使用</span><span style="font-family:Helvetica">:<span style="color:red">freemarker.template.TemplateDirectiveModel</span></span><span style="font-family:宋体">类来扩展。</span><span style="font-family:Helvetica">
					</span></span></span></span></p><p style="background: white"> 
 </p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">宏</span><span style="color:black; font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">宏是有一个变量名的模板片段<span style="color:black">。你可以在模板中使用宏作为自定义指令，这样就能进行重复性的工作。</span></span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">如例：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker1.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">#macro greet<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;font</strong><span style="color:black"> <span style="color:red">size<span style="color:black">=<span style="color:blue">"+2"<span style="color:#006699"><strong>&gt;</strong><span style="color:black">Hello Joe!<span style="color:#006699"><strong>&lt;/font&gt;</strong><span style="color:black">  <span style="color:#2b91af">
														</span></span></span></span></span></span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/</strong><span style="color:black">#macro<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:Helvetica">macro</span><span style="font-family:宋体">指令自身不打印任何内容，它只是用来创建宏变量<span style="color:black">，所以就会有一个名为</span></span><span style="font-family:Helvetica">greet</span><span style="color:black"><span style="font-family:宋体">的变量</span><span style="font-family:Helvetica">,</span><span style="font-family:宋体">在</span><span style="font-family:Helvetica">&lt;#macro greet&gt;</span><span style="font-family:宋体">和</span><span style="font-family:Helvetica">&lt;/#macro&gt;</span><span style="font-family:宋体">之间的内容</span><span style="font-family:Helvetica">(</span><span style="font-family:宋体">称为宏定义体</span><span style="font-family:Helvetica">)</span><span style="font-family:宋体">当使用它作为指令时将会被执行。你可以在</span><span style="color:red"><span style="font-family:Helvetica">FTL</span><span style="font-family:宋体">标记中通过</span><span style="font-family:Helvetica">@</span><span style="font-family:宋体">代替</span><span style="font-family:Helvetica">#</span><span style="font-family:宋体">来使用自定义指令<span style="color:black">。<span style="color:red">使用变量名作为指令名。<span style="color:black">而且，自定义指令的结束标记也是需要的，如：</span></span></span></span><span style="font-family:Helvetica">&lt;@greet&gt;&lt;/@greet&gt;<span style="color:black">
						</span></span></span></span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">因为</span><span style="font-family:Helvetica">&lt;anything&gt;,/anything&gt;</span><span style="font-family:宋体">和</span><span style="font-family:Helvetica">&lt;anything/&gt;</span><span style="font-family:宋体">是相同的，你也可以使用：</span><span style="font-family:Helvetica">&lt;@greet/&gt;
</span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">宏能做的事情还有很多，因为在</span><span style="font-family:Helvetica">&lt;#macro...&gt;</span><span style="font-family:宋体">和</span><span style="font-family:Helvetica">&lt;/#macro&gt;</span><span style="font-family:宋体">之间的东西是模板片段，也就是说它可以包含插值</span><span style="font-family:Helvetica">(${..})</span><span style="font-family:宋体">和</span><span style="font-family:Helvetica">FTL</span><span style="font-family:宋体">标签</span><span style="font-family:Helvetica">(</span><span style="font-family:宋体">如：</span><span style="font-family:Helvetica">&lt;#if...&gt;...&lt;/#if&gt;)</span><span style="font-family:宋体">。</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">注意：程序员通常将使用</span><span style="font-family:Helvetica">&lt;@...&gt;</span><span style="font-family:宋体">，这称为宏调用<span style="color:black">。</span></span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"> 
 </p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">参数</span><span style="color:black; font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">在</span><span style="font-family:Helvetica">macro</span><span style="font-family:宋体">指令中，<span style="color:red">宏名称的后面位置是用来定义变量的<span style="color:black">。如例：</span></span></span><span style="font-family:Helvetica"> 
</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker2.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">#macro greet person<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;font</strong><span style="color:black"> <span style="color:red">size<span style="color:black">=<span style="color:blue">"+2"<span style="color:#006699"><strong>&gt;</strong><span style="color:black">Hello ${person}!<span style="color:#006699"><strong>&lt;/font&gt;</strong><span style="color:black">  <span style="color:#2b91af">
														</span></span></span></span></span></span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/</strong><span style="color:black">#macro<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">那么就可以这样来使用这个宏：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker3.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">@greet <span style="color:red">person<span style="color:black">=<span style="color:blue">"Fred"<span style="color:#006699"><strong>/&gt;</strong><span style="color:black">  <span style="color:#2b91af">
											</span></span></span></span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">使用预定义指令时，<span style="color:red">参数的值</span></span><span style="font-family:Helvetica">(=</span><span style="color:red"><span style="font-family:宋体">号后边的值</span><span style="font-family:Helvetica">)</span><span style="font-family:宋体">可以是</span><span style="font-family:Helvetica">FTL</span><span style="font-family:宋体">表达式。这样，不像</span><span style="font-family:Helvetica">HTML</span><span style="font-family:宋体">，</span><span style="font-family:Helvetica">"Fred"</span><span style="font-family:宋体">的引号就可以不用要了。</span><span style="font-family:Helvetica">&lt;@greet person=Fred/&gt;</span><span style="font-family:宋体">也意味着使用变量的值</span><span style="font-family:Helvetica">Fred</span><span style="font-family:宋体">作为</span><span style="font-family:Helvetica">person</span><span style="font-family:宋体">参数，而不是字符串</span><span style="font-family:Helvetica">"Fred"</span><span style="font-family:宋体">。当然参数值并不一定是字符串类型，也可以是数字，布尔值，哈希表，序列等</span><span style="font-family:Helvetica">...</span><span style="font-family:宋体">也可以在</span><span style="font-family:Helvetica">=</span><span style="font-family:宋体">号左边使用复杂表达式</span><span style="color:black"><span style="font-family:Helvetica">(</span><span style="font-family:宋体">比如：</span><span style="font-family:Helvetica">someParam=(price+50)*1.25)
</span></span></span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">自定义指令可以有多个参数，如：</span><span style="font-family:Helvetica">  
</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker4.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">#macro greet person color<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;font</strong><span style="color:black"> <span style="color:red">size<span style="color:black">=<span style="color:blue">"+2"<span style="color:black"> <span style="color:red">color<span style="color:black">=<span style="color:blue">"${color}"<span style="color:#006699"><strong>&gt;</strong><span style="color:black">Hello ${persion}!<span style="color:#006699"><strong>&lt;/font&gt;</strong><span style="color:black">  <span style="color:#2b91af">
																		</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/</strong><span style="color:black">#macro<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">那么，这个宏就可以这样来使用：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker5.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">@greet <span style="color:red">person<span style="color:black">=<span style="color:blue">"Fred"<span style="color:black"> <span style="color:red">color<span style="color:black">=<span style="color:blue">"black"<span style="color:#006699"><strong>/&gt;</strong><span style="color:black">  <span style="color:#2b91af">
															</span></span></span></span></span></span></span></span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">同时也<span style="color:red">必须给出在宏中定义所有参数的值<span style="color:black">。如果你尝试</span></span></span><span style="font-family:Helvetica">&lt;@greet person="Fred"/&gt;</span><span style="font-family:宋体">时也会发生错误，因为忘记指定</span><span style="font-family:Helvetica">color</span><span style="font-family:宋体">的值了。</span><span style="font-family:Helvetica"> 
</span></span></p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">根据</span><span style="font-family:Helvetica">FTL</span><span style="font-family:宋体">表达式规则，明白下面这一点是至关重要的，</span><span style="font-family:Helvetica">someParam=foo</span><span style="font-family:宋体">和</span><span style="font-family:Helvetica">someParam="${foo}"</span><span style="font-family:宋体">是不同的。第一种情况，是把变量</span><span style="font-family:Helvetica">foo</span><span style="font-family:宋体">的值作为参数的值来使用。第二种情况则是使用插值形式的字符串，那么参数值就是字符串了，这个时候，</span><span style="font-family:Helvetica">foo</span><span style="font-family:宋体">的值呈现为文本，而不管</span><span style="font-family:Helvetica">foo</span><span style="font-family:宋体">是什么类型的<span style="color:black">。</span></span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">宏参数的另外一个重要的方面是它们是局部变量。</span><span style="color:black; font-family:Helvetica">
			</span></span></p><p style="background: white"> 
 </p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">嵌套内容</span><span style="color:black; font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">自定义指令可以嵌套内容，和预定义指令相似。如：</span><span style="font-family:Helvetica"> 
</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker6.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">#macro border<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;table</strong><span style="color:black"> <span style="color:red">border<span style="color:black">=<span style="color:blue">4<span style="color:black"> <span style="color:red">cellspacing<span style="color:black">=<span style="color:blue">0<span style="color:black"> <span style="color:red">cellpadding<span style="color:black">=<span style="color:blue">4<span style="color:#006699"><strong>&gt;&lt;tr&gt;&lt;td&gt;</strong><span style="color:black">  <span style="color:#2b91af">
																				</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">        <span style="color:#006699"><strong>&lt;</strong><span style="color:black">#nested<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
									</span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</strong><span style="color:black">  <span style="color:#2b91af">
							</span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/</strong><span style="color:black">#macro<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">注：</span><span style="font-family:Helvetica">&lt;#nested&gt;</span><span style="font-family:宋体">指令执行位于开始和结束标记指令之间的模板代码段。如果这样写：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker7.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">@border<span style="color:#006699"><strong>&gt;</strong><span style="color:black">The bordered text<span style="color:#006699"><strong>&lt;/</strong><span style="color:black">@border<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
												</span></span></span></span></span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">那么就会输出：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker8.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;table</strong><span style="color:black"> <span style="color:red">border<span style="color:black">=<span style="color:blue">4<span style="color:black"> <span style="color:red">cellspacing<span style="color:black">=<span style="color:blue">0<span style="color:black"> <span style="color:red">cellpadding<span style="color:black">=<span style="color:blue">4<span style="color:#006699"><strong>&gt;&lt;tr&gt;&lt;td&gt;</strong><span style="color:black">  <span style="color:#2b91af">
																			</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    The bordered text  <span style="color:#2b91af">
					</span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</strong><span style="color:black">  <span style="color:#2b91af">
						</span></span></span></div></li></ol><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">如果不使用</span><span style="font-family:Helvetica">nested</span><span style="font-family:宋体">指令，那么嵌套的内容就不会被执行<span style="color:black">，前面的例子如果这样写：</span></span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker9.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">@greet <span style="color:red">person<span style="color:black">=<span style="color:blue">"Joe"<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
											</span></span></span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    Anything.  <span style="color:#2b91af">
					</span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/</strong><span style="color:black">@greet<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:Helvetica">FreeMarker</span><span style="font-family:宋体">不会把它视为错误，只是打印：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker10.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;font</strong><span style="color:black"> <span style="color:red">size<span style="color:black">=<span style="color:blue">"+2"<span style="color:#006699"><strong>&gt;</strong><span style="color:black">Hello Joe!<span style="color:#006699"><strong>&lt;/font&gt;</strong><span style="color:black">  <span style="color:#2b91af">
													</span></span></span></span></span></span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">嵌套的内容被忽略了，因为</span><span style="font-family:Helvetica">greet</span><span style="font-family:宋体">宏没有使用</span><span style="font-family:Helvetica">nested</span><span style="font-family:宋体">指令。</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"> 
 </p><p style="background: white"><span style="color:red; font-size:10pt"><span style="font-family:宋体">宏和循环变量</span><span style="color:black; font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">像</span><span style="font-family:Helvetica">list</span><span style="font-family:宋体">这样的预定义指令可以使用循环变量，如例：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker11.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">#macro do_thrice<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;</strong><span style="color:black">#nested 1<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
									</span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;</strong><span style="color:black">#nested 2<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
									</span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    <span style="color:#006699"><strong>&lt;</strong><span style="color:black">#nested 3<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
									</span></span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/</strong><span style="color:black">#macro<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">用户自定义指令，<span style="color:red">使用</span></span><span style="font-family:Helvetica">";"</span><span style="color:red"><span style="font-family:宋体">代替</span><span style="font-family:Helvetica">"as"<span style="color:black">
					</span></span></span></span></p><p style="background: white"><span style="color:black; font-size:9pt"><strong><span style="font-family:Consolas">Html</span><span style="font-family:宋体">代码</span><span style="font-family:Consolas">  <a href="javascript:void()" title="&quot;收藏这段代码&quot;"><img src="http://www.blogjava.net/images/blogjava_net/iamlibo/062112_0205_freemarker12.png" alt="" border="0"/></a>
				</span></strong></span></p><ol><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;</strong><span style="color:black">@do_thrice ; x<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li><li><div style="background: #fafafa"><span style="color:black; font-family:Consolas; font-size:9pt">    ${x} Anything.  <span style="color:#2b91af">
					</span></span></div></li><li><div style="background: #fafafa"><span style="color:#006699; font-family:Consolas; font-size:9pt"><strong>&lt;/</strong><span style="color:black">@do_thrice<span style="color:#006699"><strong>&gt;</strong><span style="color:black">  <span style="color:#2b91af">
								</span></span></span></span></span></div></li></ol><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:宋体">将会输出：</span><span style="font-family:Helvetica">
			</span></span></p><p style="background: white"><span style="color:black; font-family:Helvetica; font-size:10pt">1 Anything.
</span></p><p style="background: white"><span style="color:black; font-family:Helvetica; font-size:10pt">2 Anything.
</span></p><p style="background: white"><span style="color:black; font-family:Helvetica; font-size:10pt">3 Anything.
</span></p><p style="background: white"><span style="color:black; font-size:10pt"><span style="font-family:Helvetica">nested</span><span style="font-family:宋体">指令</span><span style="font-family:Helvetica">(</span><span style="font-family:宋体">当然参数可以是任意的表达式</span><span style="font-family:Helvetica">)</span><span style="font-family:宋体">的参数</span><span style="font-family:Helvetica">,</span><span style="font-family:宋体">循环变量的名称是在自定义指令的开始标记</span><span style="font-family:Helvetica">(&lt;@...&gt;)</span><span style="font-family:宋体">的参数后面通过分号确定的。</span><span style="font-family:Helvetica">
			</span></span></p><img src ="http://www.blogjava.net/iamlibo/aggbug/381240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2012-06-21 10:04 <a href="http://www.blogjava.net/iamlibo/archive/2012/06/21/381240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怎么查询端口被占用</title><link>http://www.blogjava.net/iamlibo/archive/2012/06/20/381135.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Wed, 20 Jun 2012 01:02:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2012/06/20/381135.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/381135.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2012/06/20/381135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/381135.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/381135.html</trackback:ping><description><![CDATA[<p>转自<a href="http://www.cnblogs.com/xyzdw/articles/2108149.html">http://www.cnblogs.com/xyzdw/articles/2108149.html</a>
	</p><p>以下文章主要以80端口号为例，如果想知道其他的端口号也可以使用该方法..........................<br/><br/><strong>1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.<br/></strong>        这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:<br/>        &gt;netstat -aon | findstr "80"<br/>                Proto  Local Address          Foreign Address        State            PID<br/>                ====  ============      ==============  ==========  ======<br/>                TCP    0.0.0.0:80                    0.0.0.0:0                LISTENING      1688<br/>可以看出80端口被进程号为1688的程序占用.<br/>        &gt;tasklist | findstr "1688"<br/>图像名                                                PID            会话名                    会话#       内存使用<br/>               ========================= ====== ================ ======== ============<br/>               inetinfo.exe                                        1688           Console                      0              2,800 K<br/>很明显,是inetinfo占用了80端口;inetinfo.exe主要用于支持微软Windows IIS网络服务的除错,这个程序对你系统的正常运行是非常重要的.<br/>        当然,并不是只有inetinfo.exe进程会占用80端口,这只是我机器上的情况.如果你并不了解此进程是干什么用的,千万不要盲目地将其kill掉,最好先百度或Google搜索一下;当然如果你很了解它,并确定可以终止,那么继续下面的命令.<br/>        &gt;taskkill /pid 1688 /F<br/>成功: 已终止 PID 为 1688 的进程。<br/>如果你很熟悉此进程,并确定可以终止,那么就直接使用上面的命令把PID为1688的进程终止.(这一步同样可以在任务管理器中执行,inetinfo.exe就是任务管理器中的映像名称,选中它,点击"结束进程"即可)<br/>        &gt;tasklist | findstr "1688"<br/>再次确认是否成功终止,如果成功终止此次执行命令后应返回空.
</p><p><strong>2、linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等</strong>
	</p><p>查询端口是否被占用，被哪个进程占用有两种方式：1、netstat -anl | grep "80" ；2、lsof -i:80
</p><p>终止进程的方式：kill pid
</p><img src ="http://www.blogjava.net/iamlibo/aggbug/381135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2012-06-20 09:02 <a href="http://www.blogjava.net/iamlibo/archive/2012/06/20/381135.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2 Action 与Spring bean 作用域</title><link>http://www.blogjava.net/iamlibo/archive/2012/05/30/379590.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Wed, 30 May 2012 13:29:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2012/05/30/379590.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/379590.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2012/05/30/379590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/379590.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/379590.html</trackback:ping><description><![CDATA[<p><span style="color:black; font-size:9pt"><span style="font-family:Verdana">struts2 </span><span style="font-family:宋体">的</span><span style="font-family:Verdana">action </span><span style="font-family:宋体">是没有</span><span style="font-family:Verdana">scope</span><span style="font-family:宋体">的，但通过引用</span><span style="font-family:Verdana">spring bean </span><span style="font-family:宋体">可以达到有</span><span style="font-family:Verdana">scope</span><span style="font-family:宋体">功能。</span><span style="font-family:Verdana">
			</span></span></p><p>
 </p><p>
 </p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">&lt;action name="xxxAction" class="xxxBean"&gt;
</span></p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">    &lt;result name="success" &gt;/success.jsp&lt;/result&gt;
</span></p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">&lt;/action&gt;
</span></p><p>
 </p><p><span style="color:black; font-size:9pt"><span style="font-family:Verdana"> xxxBean</span><span style="font-family:宋体">是在</span><span style="font-family:Verdana">spring</span><span style="font-family:宋体">中配置的</span><span style="font-family:Verdana">session</span><span style="font-family:宋体">作用域的</span><span style="font-family:Verdana">bean.
</span></span></p><p>
 </p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">@Service(value = "xxxBean")
</span></p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">@Scope(value = "session")
</span></p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">public class XxxAction {
</span></p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">...
</span></p><p style="background: #fafafa; margin-left: 11pt"><span style="color:black; font-family:Verdana; font-size:9pt">}
</span></p><p> 
 </p><p>
 </p><p><span style="color:black; font-size:9pt"><span style="font-family:宋体">想把</span><span style="font-family:Verdana">action</span><span style="font-family:宋体">放到</span><span style="font-family:Verdana">session</span><span style="font-family:宋体">作用域</span><span style="font-family:Verdana">(</span><span style="font-family:宋体">因为一些特殊操作传参等</span><span style="font-family:Verdana">)</span><span style="font-family:宋体">，但所有</span><span style="font-family:Verdana">action</span><span style="font-family:宋体">都放到</span><span style="font-family:Verdana">session</span><span style="font-family:宋体">会头大的！！</span><span style="font-family:Verdana">
			</span></span></p><p>
 </p><p><span style="color:black; font-size:9pt"><span style="font-family:宋体">经过测试发现一个办法，就是把不用的</span><span style="font-family:Verdana">xxxAction</span><span style="font-family:宋体">在适当的时候从</span><span style="font-family:Verdana">session</span><span style="font-family:宋体">当中清除掉，这样再下次使用（没有关闭窗口的情况）的时候会再次创建</span><span style="font-family:Verdana">xxxBean</span><span style="font-family:宋体">。</span><span style="font-family:Verdana">
			</span></span></p><p>
 </p><p><span style="color:black; font-size:9pt"><span style="font-family:宋体">现在的难点在于什么时候清除比较合适，一般一个</span><span style="font-family:Verdana">action</span><span style="font-family:宋体">都是负责一个功能，比如用户的增、删、改查等，不会涉及到其他对象，采购单的增、删、改、查。这样就可以在通过菜单切换功能（从用户界面切到采购单界面）的时候将刚刚使用的用户的</span><span style="font-family:Verdana">action</span><span style="font-family:宋体">从</span><span style="font-family:Verdana">session</span><span style="font-family:宋体">当中清除。</span><span style="font-family:Verdana">
			</span></span></p><p>
 </p><p><span style="color:black; font-size:9pt"><span style="font-family:宋体">基于这样的思路，使用</span><span style="font-family:Verdana">struts2 </span><span style="font-family:宋体">的拦截器（</span><span style="font-family:Verdana">Interceptor</span><span style="font-family:宋体">）来监听特定的</span><span style="font-family:Verdana">action</span><span style="font-family:宋体">，在菜单切换的时候从</span><span style="font-family:Verdana">session</span><span style="font-family:宋体">中清除不用的</span><span style="font-family:Verdana">action</span><span style="font-family:宋体">。</span><span style="font-family:Verdana">
			</span></span></p><p>
 </p><p>
 </p><p><span style="color:black; font-size:9pt"><span style="font-family:宋体">欢迎提出各种看法！</span><span style="font-family:Verdana">
			</span></span></p><p>
 </p><p><span style="color:black; font-family:Verdana; font-size:9pt">
		</span> </p><img src ="http://www.blogjava.net/iamlibo/aggbug/379590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2012-05-30 21:29 <a href="http://www.blogjava.net/iamlibo/archive/2012/05/30/379590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Weblogic 部署程序艰难过程</title><link>http://www.blogjava.net/iamlibo/archive/2012/05/30/379558.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Wed, 30 May 2012 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2012/05/30/379558.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/379558.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2012/05/30/379558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/379558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/379558.html</trackback:ping><description><![CDATA[<p>首先说明最后部署是不成功的，但中间发现并解决了一些问题做一下记录。
</p><p>最近需要把tomcat下的项目部署到weblogic中，版本在10和12c之间选择了。
</p><p>首先来说12c 版本，主要是sfl4j 这个包中有一个错误，找不到方法，项目中使用的版本是1.5.8 而weblogic 12c 使用的是 1.6.X log 方法多了一个数组类型的参数。
</p><p>后来降级到10.3.6 版的weblogic 部署时出现一系列的包冲突，主要原因是weblogic 会首先加载它自己的包，这需要在weblogic.xml中加入
</p><p><span style="color:teal; font-family:微软雅黑; font-size:10pt">&lt;<span style="color:#3f7f7f">wls:container-descriptor<span style="color:teal">&gt;</span>
			</span></span></p><p><span style="color:black; font-family:微软雅黑; font-size:10pt">    <span style="color:teal">&lt;<span style="color:#3f7f7f"><span style="text-decoration:underline">wls:prefer-web-inf-classes</span><span style="color:teal">&gt;<span style="color:black">true<span style="color:teal">&lt;/<span style="color:#3f7f7f">wls:prefer-web-inf-classes<span style="color:teal">&gt;</span>
								</span></span></span></span></span></span></span></p><p><span style="color:teal; font-family:微软雅黑; font-size:10pt">&lt;/<span style="color:#3f7f7f">wls:container-descriptor<span style="color:teal">&gt;</span>
			</span></span></p><p>
 </p><p>这样的代码就可以了，但又出现
</p><p>org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring-config.xml]; nested exception is java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory
</p><p>….
</p><p>Caused By: java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory
</p><p>….
</p><p>查了好多解决办法，主要原因是weblogic 的jar 包与程序中的jar包冲突，<span style="color:#3f7f7f; font-family:微软雅黑; font-size:10pt; text-decoration:underline">prefer-web-inf-classes</span>设置为true 引起的需要删除xml-apis-1.0.b2.jar 这个jar包才可以。
</p><p>但删除这个jar包后，又不能解析hibernate Queries ，看网上的解决办法是不使用命名查询。
</p><p>因为程序中有很多命名查询，所以也没有删除，最终只好暂时放弃使用weblogic了。
</p><p>
 </p><img src ="http://www.blogjava.net/iamlibo/aggbug/379558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2012-05-30 15:10 <a href="http://www.blogjava.net/iamlibo/archive/2012/05/30/379558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>