﻿<?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/Vanilla-Sky/</link><description>夕阳西下  断肠人   在天涯</description><language>zh-cn</language><lastBuildDate>Fri, 17 Apr 2026 21:11:18 GMT</lastBuildDate><pubDate>Fri, 17 Apr 2026 21:11:18 GMT</pubDate><ttl>60</ttl><item><title>Hibernate中的session 事务处理机制 </title><link>http://www.blogjava.net/Vanilla-Sky/archive/2011/03/23/346844.html</link><dc:creator>无尽海</dc:creator><author>无尽海</author><pubDate>Wed, 23 Mar 2011 04:03:00 GMT</pubDate><guid>http://www.blogjava.net/Vanilla-Sky/archive/2011/03/23/346844.html</guid><wfw:comment>http://www.blogjava.net/Vanilla-Sky/comments/346844.html</wfw:comment><comments>http://www.blogjava.net/Vanilla-Sky/archive/2011/03/23/346844.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Vanilla-Sky/comments/commentRss/346844.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Vanilla-Sky/services/trackbacks/346844.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<font style="background-color: #cce8cf">http://dev.firnow.com/course/3_program/java/javaxl/2008106/148052.html</font>
<img src ="http://www.blogjava.net/Vanilla-Sky/aggbug/346844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Vanilla-Sky/" target="_blank">无尽海</a> 2011-03-23 12:03 <a href="http://www.blogjava.net/Vanilla-Sky/archive/2011/03/23/346844.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试文档C# (编辑1111)</title><link>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/31/336639.html</link><dc:creator>无尽海</dc:creator><author>无尽海</author><pubDate>Sun, 31 Oct 2010 15:18:00 GMT</pubDate><guid>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/31/336639.html</guid><wfw:comment>http://www.blogjava.net/Vanilla-Sky/comments/336639.html</wfw:comment><comments>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/31/336639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Vanilla-Sky/comments/commentRss/336639.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Vanilla-Sky/services/trackbacks/336639.html</trackback:ping><description><![CDATA[test<img src ="http://www.blogjava.net/Vanilla-Sky/aggbug/336639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Vanilla-Sky/" target="_blank">无尽海</a> 2010-10-31 23:18 <a href="http://www.blogjava.net/Vanilla-Sky/archive/2010/10/31/336639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>org.hibernate.QueryException: could not resolve property: depreciationDay  of: com.cqta.oatianai.model.Depreciation</title><link>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/14/335119.html</link><dc:creator>无尽海</dc:creator><author>无尽海</author><pubDate>Thu, 14 Oct 2010 05:32:00 GMT</pubDate><guid>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/14/335119.html</guid><wfw:comment>http://www.blogjava.net/Vanilla-Sky/comments/335119.html</wfw:comment><comments>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/14/335119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Vanilla-Sky/comments/commentRss/335119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Vanilla-Sky/services/trackbacks/335119.html</trackback:ping><description><![CDATA[<p><span style="font-family:微软雅黑; font-size:12pt">NO.1 映射出了问题。查找不到。代码如下 
</span></p><p style="background: #eeeeee"><span style="color:teal"> 1</span><span style="color:green">/**<br/></span><span style="color:teal"> 2</span><span style="color:green">     * 折旧记录检索<br/></span><span style="color:teal"> 3</span><span style="color:green">     */</span><span style="color:black"><br/></span><span style="color:teal"> 4</span><span style="color:black">    @SuppressWarnings("unchecked")<br/></span><span style="color:teal"> 5</span><span style="color:black">    </span><span style="color:blue">public</span><span style="color:black"> List&lt;Depreciation&gt; queryDepreciationList(String name, String number, Date startTime, Date endTime) {<br/></span><span style="color:teal"> 6</span><span style="color:black"><br/></span><span style="color:teal"> 7</span><span style="color:black">        Criteria criteria = getSession().createCriteria(Depreciation.</span><span style="color:blue">class</span><span style="color:black">, "s").createAlias("s.asset", "a");<br/></span><span style="color:teal"> 8</span><span style="color:black">        </span><span style="color:green">// 起始日期<br/></span><span style="color:teal"> 9</span><span style="color:black">        </span><span style="color:blue">if</span><span style="color:black"> (startTime != </span><span style="color:blue">null</span><span style="color:black">) {<br/></span><span style="color:teal">10</span><span style="color:black">            criteria.add(Restrictions.gt("s.depreciationDay ", startTime));<br/></span><span style="color:teal">11</span><span style="color:black">        }<br/></span><span style="color:teal">12</span><span style="color:black">        </span><span style="color:green">// 截止日期<br/></span><span style="color:teal">13</span><span style="color:black">        </span><span style="color:blue">if</span><span style="color:black"> (endTime != </span><span style="color:blue">null</span><span style="color:black">) {<br/></span><span style="color:teal">14</span><span style="color:black">            criteria.add(Restrictions.lt("s.depreciationDay ", endTime));<br/></span><span style="color:teal">15</span><span style="color:black">        }<br/></span><span style="color:teal">16</span><span style="color:black">        </span><span style="color:blue">if</span><span style="color:black"> (name != </span><span style="color:blue">null</span><span style="color:black"> &amp;&amp; !name.trim().equals("")) {<br/></span><span style="color:teal">17</span><span style="color:black">            criteria.add(Restrictions.like("a.name", name, MatchMode.ANYWHERE));<br/></span><span style="color:teal">18</span><span style="color:black">        }<br/></span><span style="color:teal">19</span><span style="color:black">        </span><span style="color:blue">if</span><span style="color:black"> (number != </span><span style="color:blue">null</span><span style="color:black"> &amp;&amp; !number.trim().equals("")) {<br/></span><span style="color:teal">20</span><span style="color:black">            criteria.add(Restrictions.like("a.number", number, MatchMode.ANYWHERE));<br/></span><span style="color:teal">21</span><span style="color:black">        }<br/></span><span style="color:teal">22</span><span style="color:black">    <br/></span><span style="color:teal">23</span><span style="color:black">        List&lt;Depreciation&gt; items = criteria.list();<br/></span><span style="color:teal">24</span><span style="color:black">        DebugUtil.showAllPorperty(items);<br/></span><span style="color:teal">25</span><span style="color:black">        </span><span style="color:blue">return</span><span style="color:black"> items;<br/></span><span style="color:teal">26</span><span style="color:black">        <br/></span><span style="color:teal">27</span><span style="color:black">    }</span>
	</p><p><span style="font-family:微软雅黑; font-size:12pt">NO.2 仔细核对查找代码中的该属性配置，泪流满面之后 发现属性后面多了个空格........GG...</span></p><img src ="http://www.blogjava.net/Vanilla-Sky/aggbug/335119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Vanilla-Sky/" target="_blank">无尽海</a> 2010-10-14 13:32 <a href="http://www.blogjava.net/Vanilla-Sky/archive/2010/10/14/335119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个jQuery 和json 页面交互的实例</title><link>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/334679.html</link><dc:creator>无尽海</dc:creator><author>无尽海</author><pubDate>Tue, 12 Oct 2010 09:27:00 GMT</pubDate><guid>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/334679.html</guid><wfw:comment>http://www.blogjava.net/Vanilla-Sky/comments/334679.html</wfw:comment><comments>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/334679.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Vanilla-Sky/comments/commentRss/334679.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Vanilla-Sky/services/trackbacks/334679.html</trackback:ping><description><![CDATA[<h1>工作中的点滴记录...
</h1><p><br/>No.1 Jsp页面中的脚本代码  需要引入
</p><p style="background: #eeeeee"><span style="font-size:9pt"><span style="color:black">&lt;script type="text/javascript" src="${ctx}/js/jquery.js"&gt;&lt;/script&gt;</span>
		</span></p><p> 
 </p><p style="background: #eeeeee"><span style="color:teal"><span style="font-size:12pt"> </span><span style="font-size:9pt">1</span></span><span style="font-size:9pt"><span style="color:black">&lt;!--页面jquery脚本--&gt;<br/></span><span style="color:teal"> 2</span><span style="color:black"><br/></span><span style="color:teal"> 3   </span><span style="color:blue">function</span><span style="color:black"> updateQuantity()<img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal"> 4</span><span style="color:black">   $.getJSON("${ctx}/do/material/updateQuantity?id="+$('#id').val()+"&amp;quantity="+$('#quantity').val()+"&amp;timestamp="+</span><span style="color:blue">new</span><span style="color:black"> Date().getTime(),<br/></span><span style="color:teal"> 5</span><span style="color:black">       </span><span style="color:blue">function</span><span style="color:black">(data) <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal"> 6</span><span style="color:black">   </span><span style="color:green">//遍历JSON中的每个entry<br/></span><span style="color:teal"> 7</span><span style="color:black">    $.each(data,</span><span style="color:blue">function</span><span style="color:black">(entryIndex,entry)<img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal"> 8</span><span style="color:black">    </span><span style="color:blue">var</span><span style="color:black"> html='&lt;tr&gt;';<br/></span><span style="color:teal"> 9</span><span style="color:green">//也可以写成entry.id entry.state<br/></span><span style="color:teal">10</span><span style="color:black">    html+='&lt;td&gt;'+entry['id']+'&lt;/td&gt;';<br/></span><span style="color:teal">11</span><span style="color:black">    html+='&lt;td&gt;资料状态     '+entry['state']+'&lt;/td&gt;';<br/></span><span style="color:teal">12</span><span style="color:black">    html+='&lt;td&gt;'+entry['serialNumber']+'&lt;/td&gt;';<br/></span><span style="color:teal">13</span><span style="color:black">    html+='&lt;/tr&gt;';<br/></span><span style="color:teal">14</span><span style="color:black">    $('#title').html(html);<br/></span><span style="color:teal">15</span><span style="color:black"><br/></span><span style="color:teal">16</span><span style="color:black">    });<br/></span><span style="color:teal">17</span><span style="color:black">    });<br/></span><span style="color:teal">18</span><span style="color:black">}</span>
		</span></p><p><br/><br/>No.2 后台controller代码<span style="font-size:12pt">
		</span></p><p style="background: #eeeeee"><span style="color:teal; font-size:7pt"> 1</span><span style="font-size:9pt"><span style="color:black">    </span><span style="background-color:white">/** */</span><span style="color:green">/**<br/></span><span style="color:teal"> 2</span><span style="color:green">     * 将传入的对象转化为JSON数据格式<br/></span><span style="color:teal"> 3</span><span style="color:green">     */</span><span style="color:black"><br/></span><span style="color:teal"> 4</span><span style="color:black">    </span><span style="color:blue">protected</span><span style="color:black"> JSONObject toJSONObject(Object obj) </span><span style="color:blue">throws</span><span style="color:black"> SecurityException, JSONException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException,<br/></span><span style="color:teal"> 5</span><span style="color:black">         InvocationTargetException <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal"> 6</span><span style="color:black">        JSONObject jobj = </span><span style="color:blue">new</span><span style="color:black"> JSONObject();<br/></span><span style="color:teal"> 7</span><span style="color:black">        Field[] fields = obj.getClass().getDeclaredFields();<br/></span><span style="color:teal"> 8</span><span style="color:black">        </span><span style="color:blue">for</span><span style="color:black"> (Field field : fields) <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal"> 9</span><span style="color:black">        </span><span style="color:green">// 读取obj内部的对象属性;<br/></span><span style="color:teal">10</span><span style="color:black">            </span><span style="color:blue">if</span><span style="color:black"> (field.getName().equals("department")) <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal">11</span><span style="color:black">                Object m = obj.getClass().getMethod("get" + StringUtils.capitalize("department")).invoke(obj);<br/></span><span style="color:teal">12</span><span style="color:black">             jobj.put("id", m.getClass().getMethod("get" + StringUtils.capitalize("id")).invoke(m));<br/></span><span style="color:teal">13</span><span style="color:black">                jobj.put("name", m.getClass().getMethod("get" + StringUtils.capitalize("name")).invoke(m));<br/></span><span style="color:teal">14</span><span style="color:black">                </span><span style="color:blue">continue</span><span style="color:black">;<br/></span><span style="color:teal">15</span><span style="color:black">            }<br/></span><span style="color:teal">16</span><span style="color:black">        </span><span style="color:green">// 过滤掉set成员变量<br/></span><span style="color:teal">17</span><span style="color:black">            </span><span style="color:blue">if</span><span style="color:black"> (field.getType().equals(Set.</span><span style="color:blue">class</span><span style="color:black">)) <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{  <br/></span><span style="color:teal">18</span><span style="color:black">                </span><span style="color:blue">continue</span><span style="color:black">;<br/></span><span style="color:teal">19</span><span style="color:black">            }<br/></span><span style="color:teal">20</span><span style="color:black">            </span><span style="color:green">// 成员变量是Date<br/></span><span style="color:teal">21</span><span style="color:black">            </span><span style="color:blue">if</span><span style="color:black"> (field.getType().equals(Date.</span><span style="color:blue">class</span><span style="color:black">)) <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal">22</span><span style="color:black">                Object invoke = obj.getClass().getMethod("get" + StringUtils.capitalize(field.getName())).invoke(obj);<br/></span><span style="color:teal">23</span><span style="color:black">                String format = DateFormat.getDateInstance(DateFormat.DEFAULT).format(invoke);<br/></span><span style="color:teal">24</span><span style="color:black">            </span><span style="color:green">// System.out.println(field.getName() + "===&gt;" + format);<br/></span><span style="color:teal">25</span><span style="color:black">                jobj.put(field.getName(), format);<br/></span><span style="color:teal">26</span><span style="color:black">                </span><span style="color:blue">continue</span><span style="color:black">;<br/></span><span style="color:teal">27</span><span style="color:black">            }<br/></span><span style="color:teal">28</span><span style="color:black">            </span><span style="color:green">// 成员变量是Boolean<br/></span><span style="color:teal">29</span><span style="color:black">            </span><span style="color:blue">if</span><span style="color:black"> (field.getType().equals(Boolean.</span><span style="color:blue">class</span><span style="color:black">)) <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal">30</span><span style="color:black">                jobj.put(field.getName(), obj.getClass().getMethod("is" + StringUtils.capitalize(field.getName())).invoke(obj));<br/></span><span style="color:teal">31</span><span style="color:black">                </span><span style="color:blue">continue</span><span style="color:black">;<br/></span><span style="color:teal">32</span><span style="color:black">            }<br/></span><span style="color:teal">33</span><span style="color:black">                </span><span style="color:blue">try</span><span style="color:black"> <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal">34</span><span style="color:black">                 jobj.put(field.getName(), obj.getClass().getMethod("get" + StringUtils.capitalize(field.getName())).invoke(obj));<br/></span><span style="color:teal">35</span><span style="color:black">                } </span><span style="color:blue">catch</span><span style="color:black"> (Exception e) <img src="http://www.blogjava.net/Images/dot.gif" alt=""/>{<br/></span><span style="color:teal">36</span><span style="color:black">                    </span><span style="color:blue">continue</span><span style="color:black">;<br/></span><span style="color:teal">37</span><span style="color:black">                }<br/></span><span style="color:teal">38</span><span style="color:black">        }<br/></span><span style="color:teal">39</span><span style="color:black">        </span><span style="color:blue">return</span><span style="color:black"> jobj;<br/></span><span style="color:teal">40</span><span style="color:black">    }</span>
		</span></p><p><br/>model转型为json数据时，用了反射对model中成员变量为集合(Set)、Boolean、Date进行特殊处理。<br/>PS:Json格式如下（里面添加了个性化的属性 以便JQUERY能够顺利解析）<br/>[{},<br/>{<span style="background-color:#cce8cf"> "name":"value", "name":"value", <br/>"children":[{  "name":"value",  "attributes":{  "url":"/do/postRequirement/postRequirementList"  }},{  "name":"value",  "attributes":{   "url":"/do/trainingPlan/trainingPlanList"  } }]<br/></span>},<br/>{},{},{},{},{}]<br/>Json整体格式为[{},{},{}]  ,内部数据为此基本结构的复合。{}内部有集合结构，如：children,也是以[]来包含。内部结构名称是自定的(个人理解)。<br/><span style="background-color:#cce8cf">详细格式：<a href="http://www.json.org/json-zh.html">http://www.json.org/json-zh.html</a></span></p><img src ="http://www.blogjava.net/Vanilla-Sky/aggbug/334679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Vanilla-Sky/" target="_blank">无尽海</a> 2010-10-12 17:27 <a href="http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/334679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>定时任务Quartz简单配置与cron表达式</title><link>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/vanilla_sky.html</link><dc:creator>无尽海</dc:creator><author>无尽海</author><pubDate>Tue, 12 Oct 2010 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/vanilla_sky.html</guid><wfw:comment>http://www.blogjava.net/Vanilla-Sky/comments/334647.html</wfw:comment><comments>http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/vanilla_sky.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Vanilla-Sky/comments/commentRss/334647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Vanilla-Sky/services/trackbacks/334647.html</trackback:ping><description><![CDATA[<p>项目中需要一个定时任务 ，寻找到一种使用方式， 记录下来； 
</p><p><br/>NO.1 配置spring 
</p><p style="background: #eeeeee"><span style="font-size:10pt"><span style="color:teal"> 1</span> <span style="color:black">&lt;!-- 要调用的工作类 --&gt;<br/></span><span style="color:teal"> 2</span> <span style="color:black">  &lt;bean id="alarmCheckQuartzJob" </span><span style="color:blue">class</span><span style="color:black">="com.cqta.oatianai.job.AlarmCheckQuartzJob"/&gt;  <br/></span><span style="color:teal"> 3</span> <span style="color:black">  &lt;!-- 定义调用对象和调用对象的方法 --&gt;<br/></span><span style="color:teal"> 4</span> <span style="color:black">  &lt;bean id="alarmLogInitQuartzJobTask" </span><span style="color:blue">class</span><span style="color:black">="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"&gt; <br/></span><span style="color:teal"> 5</span> <span style="color:black">      &lt;!-- 调用的类 --&gt;<br/></span><span style="color:teal"> 6</span> <span style="color:black">    &lt;property name="targetObject"&gt; <br/></span><span style="color:teal"> 7</span> <span style="color:black">      &lt;ref bean="alarmCheckQuartzJob"/&gt; <br/></span><span style="color:teal"> 8</span> <span style="color:black">    &lt;/property&gt;  <br/></span><span style="color:teal"> 9</span> <span style="color:black">&lt;!-- 调用类中的方法 --&gt;<br/></span><span style="color:teal">10</span> <span style="color:black">    &lt;property name="targetMethod"&gt; <br/></span><span style="color:teal">11</span> <span style="color:black">      &lt;value&gt;work&lt;/value&gt; <br/></span><span style="color:teal">12</span> <span style="color:black">    &lt;/property&gt; <br/></span><span style="color:teal">13</span> <span style="color:black">  &lt;/bean&gt;  <br/></span><span style="color:teal">14</span> <span style="color:black">  &lt;!-- 定义触发时间 --&gt;<br/></span><span style="color:teal">15</span> <span style="color:black">  &lt;bean id="alarmLogInitQuartzJobTrigger" </span><span style="color:blue">class</span><span style="color:black">="org.springframework.scheduling.quartz.CronTriggerBean"&gt; <br/></span><span style="color:teal">16</span> <span style="color:black">    &lt;property name="jobDetail"&gt; <br/></span><span style="color:teal">17</span> <span style="color:black">      &lt;ref bean="alarmLogInitQuartzJobTask"/&gt; <br/></span><span style="color:teal">18</span> <span style="color:black">    &lt;/property&gt;  <br/></span><span style="color:teal">19</span> <span style="color:black">         &lt;!-- cron表达式每秒钟触发一次该任务 --&gt;<br/></span><span style="color:teal">20</span> <span style="color:black">    &lt;property name="cronExpression"&gt; <br/></span><span style="color:teal">21</span> <span style="color:black">      &lt;value&gt;0/1 * * * * ?&lt;/value&gt; <br/></span><span style="color:teal">22</span> <span style="color:black">    &lt;/property&gt; <br/></span><span style="color:teal">23</span> <span style="color:black">  &lt;/bean&gt;  <br/></span><span style="color:teal">24</span> <span style="color:black">    &lt;!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  --&gt;<br/></span><span style="color:teal">25</span> <span style="color:black">  &lt;bean id="startQuertz" lazy-init="false" autowire="no" </span><span style="color:blue">class</span><span style="color:black">="org.springframework.scheduling.quartz.SchedulerFactoryBean"&gt; <br/></span><span style="color:teal">26</span> <span style="color:black">    &lt;property name="triggers"&gt; <br/></span><span style="color:teal">27</span> <span style="color:black">      &lt;list&gt; <br/></span><span style="color:teal">28</span> <span style="color:black">        &lt;ref bean="alarmLogInitQuartzJobTrigger"/&gt;  <br/></span><span style="color:teal">29</span> <span style="color:black">      &lt;/list&gt; <br/></span><span style="color:teal">30</span> <span style="color:black">    &lt;/property&gt; <br/></span><span style="color:teal">31</span> <span style="color:black">  &lt;/bean&gt;  </span></span>
	</p><p>NO.2 编写要调用的工作类 
</p><p style="background: #eeeeee"><span style="font-size:10pt"><span style="color:blue">package</span><span style="color:black"> com.cqta.oatianai.job;<br/><br/></span><span style="color:blue">public</span><span style="color:black"> </span><span style="color:blue">class</span><span style="color:black"> AlarmCheckQuartzJob {<br/>    </span><span style="color:blue">public</span><span style="color:black"> </span><span style="color:blue">void</span><span style="color:black"> work() {<br/>        System.out.println("定时任务触发测试");<br/>    }<br/>}</span>
		</span>
	</p><p><br/>NO.3 cron表达式编写<br/>上面配置文件中的表达式，表示每秒钟触发一次工作类的work方法(任务)<span style="font-size:12pt">
		</span>
	</p><p style="background: #eeeeee"><span style="font-size:10pt"><span style="color:teal">1</span> <span style="color:black">      &lt;!-- cron表达式 --&gt;<br/></span><span style="color:teal">2</span> <span style="color:black">    &lt;property name="cronExpression"&gt; <br/></span><span style="color:teal">3</span> <span style="color:black">      &lt;value&gt;0/1 * * * * ?&lt;/value&gt; <br/></span><span style="color:teal">4</span> <span style="color:black">    &lt;/property&gt; </span></span>
	</p><p><span style="font-family:微软雅黑">其中 表达式<span style="color:black">0/1 * * * * ?用空格分为了6部分，各部分对应的时间单位定义如下</span><br/>秒 分 小时 日期 月份 星期 年 </span>
	</p><div><table style="border-collapse:collapse" border="0"><colgroup><col style="width:83px"/><col style="width:124px"/><col style="width:113px"/></colgroup><tbody valign="top"><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  solid black 0.5pt; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p><span style="font-family:微软雅黑"><strong>字段</strong></span></p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  solid black 0.5pt; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p><span style="font-family:微软雅黑"><strong>允许值</strong></span></p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  solid black 0.5pt; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p><span style="font-family:微软雅黑"><strong>允许的特殊字符</strong></span></p></td></tr><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>  </p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>0-59</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>, - * /</p></td></tr><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>分</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>0-59</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>, - * /</p></td></tr><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>小时</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>0-23</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>, - * ? / L W C</p></td></tr><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>日期</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>1-31</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>, - * /</p></td></tr><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>月份</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>1-12 或者 JAN-DEC</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>, - * ? / L C #</p></td></tr><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>星期</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>1-7 或者 SUN-SAT</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>, - * /</p></td></tr><tr style="height: 11px"><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>年（可选）</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>留空, 1970-2099</p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 5px; padding-bottom: 1px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"><p>  </p></td></tr></tbody></table></div><p> 
 </p><p><span style="font-family:微软雅黑">其中<span style="font-size:10pt"> "？"字符仅被用于天（日期）和天（星期）两个子表达式，表示不指定值; 当2个子表达式其中之一被指定了值以后，为了避免冲突，需要将另一个子表达式的值设为<span style="color:red">？</span></span><br/>目前个人理解：日期和星期 2部分是互斥的，不能同时定义到表达式中，即2者之一 必须用<span style="color:red">？</span><br/>表达式共7个部分 ，最后部分年为可选。每个部分出现的数字和字符的组合，表达了该部分对应的时间单位的约束，不需要约束的部分就用*号代替即可。 </span>
	</p><p><span style="font-family:微软雅黑"><span style="color:black; font-size:10pt">其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?.</span>
		</span>
	</p><p><span style="font-family:微软雅黑">以下是一些cron表达式实例： </span>
	</p><p><span style="font-family:微软雅黑"><span style="font-size:10pt">0 0 10,14,16 * * ? 每天上午10点，下午2点，4点<br/>0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时<br/>0 0 12 ? * WED 表示每个星期三中午12点</span>
			<br/>"0 0 12 * * ?" 每天中午12点触发 <br/>"0 15 10 ? * *" 每天上午10:15触发 <br/>"0 15 10 * * ?" 每天上午10:15触发 <br/>"0 15 10 * * ? *" 每天上午10:15触发 <br/>"0 15 10 * * ? 2005" 2005年的每天上午10:15触发 <br/>"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 <br/>"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 <br/>"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 <br/>"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 <br/>"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 <br/>"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 <br/>"0 15 10 15 * ?" 每月15日上午10:15触发 <br/>"0 15 10 L * ?" 每月最后一日的上午10:15触发 <br/>"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 <br/>"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 <br/>"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发  </span>
	</p><p><span style="font-family:微软雅黑"><span style="font-size:10pt">有些子表达式能包含一些范围或列表</span>
		</span>
	</p><p><span style="font-family:微软雅黑"><span style="font-size:10pt">例如：子表达式（<strong>天（星期）</strong>）可以为 "MON-FRI"，"MON，WED，FRI"，"MON-WED,SAT"</span>
		</span>
	</p><p><span style="font-family:微软雅黑"><span style="font-size:10pt">"*"字符代表所有可能的值</span>
		</span>
	</p><p><span style="font-family:微软雅黑"><span style="font-size:10pt">因此，"*"在子表达式（<strong>月</strong>）里表示每个月的含义，"*"在子表达式（<strong>天（星期）</strong>）表示星期的每一天</span>
		</span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt"> "/"字符用来指定数值的增量 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">例如： </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">在子表达式（分钟）里的"0/15"表示从第0分钟开始，每15分钟  </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">在子表达式（分钟）里的"3/20"表示从第3分钟开始，每20分钟（它和"3，23，43"）的含义一样 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">"L" 字符仅被用于天（月）和天（星期）两个子表达式，它是单词"last"的缩写 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">但是它在两个子表达式里的含义是不同的。 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">在天（月）子表达式中，"L"表示一个月的最后一天 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">在天（星期）自表达式中，"L"表示一个星期的最后一天，也就是SAT </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">如果在"L"前有具体的内容，它就具有其他的含义了 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">例如："6L"表示这个月的倒数第６天，"ＦＲＩＬ"表示这个月的最一个星期五 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">注意：在使用"L"参数时，不要指定列表或范围，因为这会导致问题 </span>
	</p><p><span style="font-family:微软雅黑; font-size:10pt">参考链接 </span>
	</p><p><span style="color:#e36c0a; font-size:10pt; text-decoration:underline">http://www.blogjava.net/allen-zhe/archive/2007/01/09/92668.html </span>
	</p><p><span style="color:#e36c0a; font-size:10pt; text-decoration:underline">http://biaoming.javaeye.com/blog/39532 </span>
	</p><p>  </p><img src ="http://www.blogjava.net/Vanilla-Sky/aggbug/334647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Vanilla-Sky/" target="_blank">无尽海</a> 2010-10-12 14:49 <a href="http://www.blogjava.net/Vanilla-Sky/archive/2010/10/12/vanilla_sky.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>