﻿<?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-DANCE WITH JAVA-最新评论</title><link>http://www.blogjava.net/dreamstone/CommentsRSS.aspx</link><description>开发出高质量的系统</description><language>zh-cn</language><pubDate>Mon, 24 Feb 2020 01:55:31 GMT</pubDate><lastBuildDate>Mon, 24 Feb 2020 01:55:31 GMT</lastBuildDate><generator>cnblogs</generator><item><title>re: 终于可以在Java中使用lazy loading的单态了</title><link>http://www.blogjava.net/dreamstone/archive/2016/11/11/101000.html#431976</link><dc:creator>NewSea</dc:creator><author>NewSea</author><pubDate>Fri, 11 Nov 2016 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2016/11/11/101000.html#431976</guid><description><![CDATA[学习。<img src ="http://www.blogjava.net/dreamstone/aggbug/431976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">NewSea</a> 2016-11-11 14:29 <a href="http://www.blogjava.net/dreamstone/archive/2016/11/11/101000.html#431976#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: SLF4J 教程（自由在各种log中切换)[未登录]</title><link>http://www.blogjava.net/dreamstone/archive/2016/03/22/128993.html#429768</link><dc:creator>ddd</dc:creator><author>ddd</author><pubDate>Tue, 22 Mar 2016 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2016/03/22/128993.html#429768</guid><description><![CDATA[ewrwrw<img src ="http://www.blogjava.net/dreamstone/aggbug/429768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">ddd</a> 2016-03-22 17:24 <a href="http://www.blogjava.net/dreamstone/archive/2016/03/22/128993.html#429768#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: eclipse rcp 开发实例 (源码下载)</title><link>http://www.blogjava.net/dreamstone/archive/2015/12/29/118399.html#428856</link><dc:creator>柯小江</dc:creator><author>柯小江</author><pubDate>Tue, 29 Dec 2015 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/12/29/118399.html#428856</guid><description><![CDATA[太棒了<img src ="http://www.blogjava.net/dreamstone/aggbug/428856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">柯小江</a> 2015-12-29 10:34 <a href="http://www.blogjava.net/dreamstone/archive/2015/12/29/118399.html#428856#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 对象与实例的区别[未登录]</title><link>http://www.blogjava.net/dreamstone/archive/2015/08/19/101733.html#426881</link><dc:creator>jackson</dc:creator><author>jackson</author><pubDate>Wed, 19 Aug 2015 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/08/19/101733.html#426881</guid><description><![CDATA[@jason<br>没有章法的理解方式，我只能说：不对<img src ="http://www.blogjava.net/dreamstone/aggbug/426881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">jackson</a> 2015-08-19 10:13 <a href="http://www.blogjava.net/dreamstone/archive/2015/08/19/101733.html#426881#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: hibernate的各种保存方式的区别  (save,persist,update,saveOrUpdte,merge,flush,lock)等</title><link>http://www.blogjava.net/dreamstone/archive/2015/08/18/133071.html#426863</link><dc:creator>阿斯顿</dc:creator><author>阿斯顿</author><pubDate>Tue, 18 Aug 2015 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/08/18/133071.html#426863</guid><description><![CDATA[hibernate的保存<br>hibernate对于对象的保存提供了太多的方法，他们之间有很多不同，这里细说一下，以便区别：<br>一、预备知识：<br>在所有之前，说明一下，对于hibernate，它的对象有三种状态，transient、persistent、detached<br>下边是常见的翻译办法：<br>transient：瞬态或者自由态<br>persistent：持久化状态<br>detached：脱管状态或者游离态<br><br>游离状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。<br>持久化实例可以通过调用 delete()变成脱管状态。通过get()或load()方法得到的实例都是持久化状态的。<br>脱管状态的实例可以通过调用 update()、0saveOrUpdate()、lock()或者replicate()进行持久化。<br><br>save()和persist()将会引发SQL的INSERT，delete()会引发SQLDELETE，<br>而update()或merge()会引发SQLUPDATE。对持久化（persistent）实例的修改在刷新提交的时候会被检测到，<br>它也会引起SQLUPDATE。saveOrUpdate()或者replicate()会引发SQLINSERT或者UPDATE<br><br>二、save 和update区别<br>把这一对放在第一位的原因是因为这一对是最常用的。<br>save的作用是把一个新的对象保存<br>update是把一个脱管状态的对象保存<br><br>三,update 和saveOrUpdate区别<br>这个是比较好理解的，顾名思义，saveOrUpdate基本上就是合成了save和update<br>引用hibernate reference中的一段话来解释他们的使用场合和区别<br>通常下面的场景会使用update()或saveOrUpdate()： <br>程序在第一个session中加载对象 <br>该对象被传递到表现层 <br>对象发生了一些改动 <br>该对象被返回到业务逻辑层 <br>程序调用第二个session的update()方法持久这些改动<br><br>saveOrUpdate()做下面的事: <br>如果对象已经在本session中持久化了，不做任何事 <br>如果另一个与本session关联的对象拥有相同的持久化标识(identifier)，抛出一个异常 <br>如果对象没有持久化标识(identifier)属性，对其调用save() <br>如果对象的持久标识(identifier)表明其是一个新实例化的对象，对其调用save() <br>如果对象是附带版本信息的（通过&lt;version&gt;或&lt;timestamp&gt;） 并且版本属性的值表明其是一个新实例化的对象，save()它。 <br>否则update() 这个对象<br><br>四,persist和save区别<br>这个是最迷离的一对，表面上看起来使用哪个都行，在hibernate reference文档中也没有明确的区分他们.<br>这里给出一个明确的区分。（可以跟进src看一下，虽然实现步骤类似，但是还是有细微的差别）<br>这里参考<a href="<a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-1682" target="_new" rel="nofollow">http://opensource.atlassian.com/projects/hibernate/browse/HHH-1682</a>中的一个说明" target="_new" rel="nofollow"><a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-1682" target="_new" rel="nofollow">http://opensource.atlassian.com/projects/hibernate/browse/HHH-1682</a>中的一个说明</a>：<br>---------------------------------------------------------------------------------<br>I found that a lot of people have the same doubt. To help to solve this issue <br>I'm quoting Christian Bauer:<br>&quot;In case anybody finds this thread...<br><br>persist() is well defined. It makes a transient instance persistent. However, <br>it doesn't guarantee that the identifier value will be assigned to the persistent <br>instance immediately, the assignment might happen at flush time. The spec doesn't say <br>that, which is the problem I have with persist().<br><br>persist() also guarantees that it will not execute an INSERT statement if it is <br>called outside of transaction boundaries. This is useful in long-running conversations <br>with an extended Session/persistence context.A method like persist() is required.<br><br>save() does not guarantee the same, it returns an identifier, and if an INSERT <br>has to be executed to get the identifier (e.g. &quot;identity&quot; generator, not &quot;sequence&quot;), <br>this INSERT happens immediately, no matter if you are inside or outside of a transaction. This is not good in a long-running conversation with an extended Session/persistence context.&quot;<br><br>---------------------------------------------------------------------------------<br>简单翻译一下上边的句子的主要内容：<br>1，persist把一个瞬态的实例持久化，但是并&quot;不保证&quot;标识符被立刻填入到持久化实例中，标识符的填入可能被推迟<br>到flush的时间。<br><br>2，persist&quot;保证&quot;，当它在一个transaction外部被调用的时候并不触发一个Sql Insert，这个功能是很有用的，<br>当我们通过继承Session/persistence context来封装一个长会话流程的时候，一个persist这样的函数是需要的。<br><br>3，save&quot;不保证&quot;第2条,它要返回标识符，所以它会立即执行Sql insert，不管是不是在transaction内部还是外部<br><br><br>五,saveOrUpdateCopy,merge和update区别<br>首先说明merge是用来代替saveOrUpdateCopy的，这个详细见这里<br><a href="http://www.blogjava.net/dreamstone/archive/2007/07/28/133053.html" target="_new" rel="nofollow">http://www.blogjava.net/dreamstone/archive/2007/07/28/133053.html</a><br>然后比较update和merge<br>update的作用上边说了，这里说一下merge的<br>如果session中存在相同持久化标识(identifier)的实例，用用户给出的对象的状态覆盖旧有的持久实例 <br>如果session没有相应的持久实例，则尝试从数据库中加载，或创建新的持久化实例,最后返回该持久实例 <br>用户给出的这个对象没有被关联到session上，它依旧是脱管的 <br>重点是最后一句：<br>当我们使用update的时候，执行完成后，我们提供的对象A的状态变成持久化状态<br>但当我们使用merge的时候，执行完成，我们提供的对象A还是脱管状态，hibernate或者new了一个B，或者检索到<br>一个持久对象B，并把我们提供的对象A的所有的值拷贝到这个B，执行完成后B是持久状态，而我们提供的A还是托管状态<br><br>六,flush和update区别<br>这两个的区别好理解<br>update操作的是在脱管状态的对象<br>而flush是操作的在持久状态的对象。<br>默认情况下，一个持久状态的对象是不需要update的，只要你更改了对象的值，等待hibernate flush就自动<br>保存到数据库了。hibernate flush发生再几种情况下：<br>1，调用某些查询的时候<br>2，transaction commit的时候<br>3，手动调用flush的时候<br><br>七,lock和update区别<br>update是把一个已经更改过的脱管状态的对象变成持久状态<br>lock是把一个没有更改过的脱管状态的对象变成持久状态<br>对应更改一个记录的内容，两个的操作不同：<br>update的操作步骤是：<br>（1）更改脱管的对象-&gt;调用update<br>lock的操作步骤是：<br>(2)调用lock把对象从脱管状态变成持久状态--&gt;更改持久状态的对象的内容--&gt;等待flush或者手动flush<br><br>参考内容：<br><a href="http://www.blogjava.net/iamtin/archive/2006/03/06/33910.aspx" target="_new" rel="nofollow">http://www.blogjava.net/iamtin/archive/2006/03/06/33910.aspx</a><br><a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-1682" target="_new" rel="nofollow">http://opensource.atlassian.com/projects/hibernate/browse/HHH-1682</a><br><a href="http://www.redsaga.com/hibernate-ref/3.x/zh-cn/html/objectstate.html" target="_new" rel="nofollow">http://www.redsaga.com/hibernate-ref/3.x/zh-cn/html/objectstate.html</a><br><br>posted on 2007-07-29 00:19 dreamstone 阅读(46501) 评论(12)  编辑  收藏 所属分类: dao层框架<img src ="http://www.blogjava.net/dreamstone/aggbug/426863.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">阿斯顿</a> 2015-08-18 10:33 <a href="http://www.blogjava.net/dreamstone/archive/2015/08/18/133071.html#426863#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Clone和New哪个更快</title><link>http://www.blogjava.net/dreamstone/archive/2015/08/10/100761.html#426712</link><dc:creator>jsolo</dc:creator><author>jsolo</author><pubDate>Mon, 10 Aug 2015 04:39:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/08/10/100761.html#426712</guid><description><![CDATA[次数改成1千万，是new比较快，怎么解释？<img src ="http://www.blogjava.net/dreamstone/aggbug/426712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">jsolo</a> 2015-08-10 12:39 <a href="http://www.blogjava.net/dreamstone/archive/2015/08/10/100761.html#426712#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: file的getPath getAbsolutePath和getCanonicalPath的不同</title><link>http://www.blogjava.net/dreamstone/archive/2015/06/15/134968.html#425707</link><dc:creator>yxh</dc:creator><author>yxh</author><pubDate>Mon, 15 Jun 2015 13:13:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/06/15/134968.html#425707</guid><description><![CDATA[写的很详细，谢了！<img src ="http://www.blogjava.net/dreamstone/aggbug/425707.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">yxh</a> 2015-06-15 21:13 <a href="http://www.blogjava.net/dreamstone/archive/2015/06/15/134968.html#425707#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 对象与实例的区别[未登录]</title><link>http://www.blogjava.net/dreamstone/archive/2015/03/18/101733.html#423553</link><dc:creator>jason</dc:creator><author>jason</author><pubDate>Wed, 18 Mar 2015 00:01:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/03/18/101733.html#423553</guid><description><![CDATA[类可以比喻一个大盒子，对象是大盒子里面的零散的东西，而实例是大盒子里面的很多小盒子，小盒也可以装对象那种，对不对，各位大神？。。来自初学者的浅谈，，，<img src ="http://www.blogjava.net/dreamstone/aggbug/423553.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">jason</a> 2015-03-18 08:01 <a href="http://www.blogjava.net/dreamstone/archive/2015/03/18/101733.html#423553#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)</title><link>http://www.blogjava.net/dreamstone/archive/2015/01/22/134499.html#422372</link><dc:creator>suren</dc:creator><author>suren</author><pubDate>Thu, 22 Jan 2015 11:01:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/01/22/134499.html#422372</guid><description><![CDATA[学习过了<br><br>surenpi.com<img src ="http://www.blogjava.net/dreamstone/aggbug/422372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">suren</a> 2015-01-22 19:01 <a href="http://www.blogjava.net/dreamstone/archive/2015/01/22/134499.html#422372#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Swt/Jface tableViewer入门教程一(显示tableViewer)</title><link>http://www.blogjava.net/dreamstone/archive/2015/01/22/134495.html#422350</link><dc:creator>suren</dc:creator><author>suren</author><pubDate>Thu, 22 Jan 2015 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2015/01/22/134495.html#422350</guid><description><![CDATA[楼主讲解的很清楚，学习了。<br><a href="http://surenpi.com" target="_new" rel="nofollow">http://surenpi.com</a><img src ="http://www.blogjava.net/dreamstone/aggbug/422350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">suren</a> 2015-01-22 10:49 <a href="http://www.blogjava.net/dreamstone/archive/2015/01/22/134495.html#422350#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>1[未登录]</title><link>http://www.blogjava.net/dreamstone/archive/2014/12/18/134968.html#421539</link><dc:creator>1</dc:creator><author>1</author><pubDate>Thu, 18 Dec 2014 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/12/18/134968.html#421539</guid><description><![CDATA[1<img src ="http://www.blogjava.net/dreamstone/aggbug/421539.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">1</a> 2014-12-18 16:29 <a href="http://www.blogjava.net/dreamstone/archive/2014/12/18/134968.html#421539#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Eclipse Rcp系列 四  弹出提示窗口</title><link>http://www.blogjava.net/dreamstone/archive/2014/10/21/79400.html#418912</link><dc:creator>d</dc:creator><author>d</author><pubDate>Tue, 21 Oct 2014 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/10/21/79400.html#418912</guid><description><![CDATA[wdrw<img src ="http://www.blogjava.net/dreamstone/aggbug/418912.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">d</a> 2014-10-21 17:44 <a href="http://www.blogjava.net/dreamstone/archive/2014/10/21/79400.html#418912#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 亿万年后的地球将是什么样子 ？</title><link>http://www.blogjava.net/dreamstone/archive/2014/09/11/81642.html#417844</link><dc:creator>7798</dc:creator><author>7798</author><pubDate>Thu, 11 Sep 2014 10:48:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/09/11/81642.html#417844</guid><description><![CDATA[开瑞坦hi噢发个东西叫姐姐<img src ="http://www.blogjava.net/dreamstone/aggbug/417844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">7798</a> 2014-09-11 18:48 <a href="http://www.blogjava.net/dreamstone/archive/2014/09/11/81642.html#417844#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: js转换中把10进制数字转换成16进制</title><link>http://www.blogjava.net/dreamstone/archive/2014/08/20/144014.html#417144</link><dc:creator>12</dc:creator><author>12</author><pubDate>Wed, 20 Aug 2014 01:54:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/08/20/144014.html#417144</guid><description><![CDATA[12<img src ="http://www.blogjava.net/dreamstone/aggbug/417144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">12</a> 2014-08-20 09:54 <a href="http://www.blogjava.net/dreamstone/archive/2014/08/20/144014.html#417144#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: eclipse rcp 开发实例 (源码下载)</title><link>http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416088</link><dc:creator>骷髅007</dc:creator><author>骷髅007</author><pubDate>Tue, 22 Jul 2014 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416088</guid><description><![CDATA[加说明就更好了<img src ="http://www.blogjava.net/dreamstone/aggbug/416088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">骷髅007</a> 2014-07-22 14:59 <a href="http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416088#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: eclipse rcp 开发实例 (源码下载)</title><link>http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416084</link><dc:creator>骷髅007</dc:creator><author>骷髅007</author><pubDate>Tue, 22 Jul 2014 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416084</guid><description><![CDATA[找到了<img src ="http://www.blogjava.net/dreamstone/aggbug/416084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">骷髅007</a> 2014-07-22 14:32 <a href="http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416084#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: eclipse rcp 开发实例 (源码下载)</title><link>http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416083</link><dc:creator>赖文贲</dc:creator><author>赖文贲</author><pubDate>Tue, 22 Jul 2014 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416083</guid><description><![CDATA[在哪下载啊<img src ="http://www.blogjava.net/dreamstone/aggbug/416083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">赖文贲</a> 2014-07-22 14:30 <a href="http://www.blogjava.net/dreamstone/archive/2014/07/22/118399.html#416083#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 终于可以在Java中使用lazy loading的单态了</title><link>http://www.blogjava.net/dreamstone/archive/2014/06/04/101000.html#414392</link><dc:creator>kizz</dc:creator><author>kizz</author><pubDate>Wed, 04 Jun 2014 07:50:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/06/04/101000.html#414392</guid><description><![CDATA[纯扯淡<img src ="http://www.blogjava.net/dreamstone/aggbug/414392.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">kizz</a> 2014-06-04 15:50 <a href="http://www.blogjava.net/dreamstone/archive/2014/06/04/101000.html#414392#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: SLF4J 教程（自由在各种log中切换)[未登录]</title><link>http://www.blogjava.net/dreamstone/archive/2014/04/18/128993.html#412646</link><dc:creator>Robot</dc:creator><author>Robot</author><pubDate>Fri, 18 Apr 2014 05:27:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/04/18/128993.html#412646</guid><description><![CDATA[common-logging通过动态查找的机制，在程序运行时自动找出真正使用的日志库。由于它使用了ClassLoader寻找和载入底层的日志库， 导致了象OSGI这样的框架无法正常工作，因为OSGI的不同的插件使用自己的ClassLoader。 OSGI的这种机制保证了插件互相独立，然而却使Apache Common-Logging无法工作。<br><br>slf4j在编译时静态绑定真正的Log库,因此可以再OSGI中使用。另外，SLF4J 支持参数化的log字符串，避免了之前为了减少字符串拼接的性能损耗而不得不写的if(logger.isDebugEnable())，现在你可以直接写：logger.debug(“current user is: {}”, user)。拼装消息被推迟到了它能够确定是不是要显示这条消息的时候，但是获取参数的代价并没有幸免。<img src ="http://www.blogjava.net/dreamstone/aggbug/412646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">Robot</a> 2014-04-18 13:27 <a href="http://www.blogjava.net/dreamstone/archive/2014/04/18/128993.html#412646#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: file的getPath getAbsolutePath和getCanonicalPath的不同</title><link>http://www.blogjava.net/dreamstone/archive/2014/04/10/134968.html#412185</link><dc:creator>mavk</dc:creator><author>mavk</author><pubDate>Thu, 10 Apr 2014 02:47:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2014/04/10/134968.html#412185</guid><description><![CDATA[赞一个！<img src ="http://www.blogjava.net/dreamstone/aggbug/412185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">mavk</a> 2014-04-10 10:47 <a href="http://www.blogjava.net/dreamstone/archive/2014/04/10/134968.html#412185#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>