﻿<?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-workspace-随笔分类-Java</title><link>http://www.blogjava.net/babymouse/category/35788.html</link><description>努力奋斗——I believe I can fly</description><language>zh-cn</language><lastBuildDate>Thu, 01 Oct 2009 17:08:47 GMT</lastBuildDate><pubDate>Thu, 01 Oct 2009 17:08:47 GMT</pubDate><ttl>60</ttl><item><title>读书笔记——Flex与Spring &amp;&amp; Flex与IOC框架</title><link>http://www.blogjava.net/babymouse/archive/2009/09/30/296987.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Wed, 30 Sep 2009 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2009/09/30/296987.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/296987.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2009/09/30/296987.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/296987.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/296987.html</trackback:ping><description><![CDATA[所读文章<br />
<span style="font-weight: bold;">常用Flex IOC框架比较分析&nbsp; http://www.infoq.com/cn/articles/ioc-frameworks</span><br />
<span style="font-weight: bold;">Flex 与 Spring 框架&nbsp; http://www.riameeting.com<br />
Spring BlazeDS Integration简介与入门 http://www.infoq.com/cn/articles/spring-blazeds-integration<br />
</span><br />
Spring与IOC现在是开发人员的常识了，IOC（Inversion of Control）也成为软件开发中非常流行的一种设计模式。<br />
<br />
<p>Spring的横空出世完全颠覆了传统Java服务端的开发方式。它鼓励通过依赖注入的方式来装配POJO，这极大地简化了应用的开发与测试。</p>
Spring的核心配置是通过Java bean实现的。借助于bean，任何Java类都能被公开成为服务。<br />
IoC是Spring的核心。IoC的作用：<br />
借助IOC，可用一个独立的对象为其他对象的数据成员填充正确的实现，而不是由这些对象自己负责此项工作。这样做的好处有两个。<br />
第一，可将对象的数据成员
声明为接口，从而将对象与其具体实现分离（即契约式设计，design by
contract）。<br />
第二，可从对象中删除创建逻辑，可以使对象的用途更为明确。<br />
<br />
实现：<br />
<p>一般有两种最常见的对象配置方法：</p>
<ul>
    <li>对象实例化（例如：<code>var myObject = new Object()</code>）</li>
    <li>对象查找（例如：<code>var myObject = registry.getMyObject()</code>）</li>
</ul>
<p>而利用IOC，你可在一个独立层中实例化应用程序要用到的对象，并传入它们所需的依赖。具体来说，最常见的实现方法也有两种：</p>
<ul>
    <li>Setter注入（例如：<code>instance.myObject = new Object()</code>）</li>
    <li>Constructor注入（例如：<code>instance = new Instance( new Object() )</code>）</li>
</ul>
<p>一个IOC框架，通常由如下三个部分组成：配置、工厂和注入机制。 <br />
</p>
<h3>配置</h3>
<p>我们可以在配置中描述对象之间的关系。最常用的配置描述方法是在文件中声明。这样的文件有时候也被称为上下文文件（context file）。也可以用元数据/注释（metadata/annotation），甚至直接在程序中描述配置。/</p>
<p>
</p>
<h3>工厂</h3>
<p>工厂负责配置的解析和所有对象的准备工作，程序一旦运行，就可以根据需要取得这些对象。</p>
<p>在经典的Spring框架（最流行的Java IOC框架）中，所有对象（我称其为客户对象）都由IOC容器负责准备，并且它们以接口形式声明自己的依赖。在配置文件中，被声明的依赖都被设置为对应的实现类。 </p>
<h3>注入机制</h3>
<p>所谓注入机制，是指如何将工厂创建的对象实例注入到应用或其他对象。</p>
<p>就Spring
Web应用而言，注入方法是通过web.xml来实现的。Spring会监听Web应用上下文的加载事件，并利用钩子捕获类加载器的行为，从而分离出任何
需被创建的对象。此后，若有需要，工厂将实例化对象，并填充它所需的依赖。当然在向应用返回对象之前，这些依赖本身也可能需要实例化。这个过程即所谓的
&#8220;（将依赖与对象）捆绑在一起&#8221;。</p>
<p>在Flex中，类的加载原理有所不同，因此捆绑方法也就不同。目前有两种方法：</p>
<ul>
    <li>客户对象直接从工厂请求（已捆绑好的）对象</li>
    <li>利用内置的Flex事件机制（用于实例化视图）触发注入</li>
    <br />
</ul>
看了一些文章之后发现还是不能够很好的了解Flex IOC框架比如spring Actionscript与Spring BlazeDS Integeration 到底有何不同。<br />
到spring官方网站一看究竟，目前Spring官方网站上有两个项目：<br />
<a href="http://www.springsource.org/extensions/se-springactionscript-as">Spring BlazeDS Integration</a><br />
<a href="http://www.springsource.org/extensions/se-springactionscript-as">Spring Ationscript     </a>
<p>这两个项目让你在客户端的Actionscript编码中以及服务端的Java编码中，都能够使用Spring的各种优秀特性。</p>
<p>两者的不容之处在于</p>
<p style="font-weight: bold;">Spring BlazeDS Integeration 允许你在服务端使用Spring容器来组织你的代码，维护的你代码依赖。并且，把你的服务通过相应的配置暴露给客户端。</p>
<p style="font-weight: bold;">Spring Actionscript则是一个基于Actionscript代码的Ioc容器（目前还不支持AOP）.可以让你在客户端使用Ioc管理依赖注入.</p>
<p><br />
</p>
<p>下面分别看下，首先来探讨下Spring Actionscript以及其它的IoC框架。</p>
<ul><br />
</ul>
<br />
<h2><strong><span style="color: #040000;">Spring ActionScript</span></strong></h2>
<ul>
    <li>框架：Spring ActionScript </li>
    <li>网站：<a href="http://www.herrodius.com/blog/" target="_blank">http://www.herrodius.com/blog/</a></li>
    <li>
    <br />
    </li>
    <li>开发者：Christophe Herreman</li>
    <li>版本：0.71</li>
    <li>许可：开源</li>
    <li>配置：XML</li>
</ul>
<p>Spring ActionScript前身为Prana，因其成熟度高，成为了一个知名框架。</p>
<h3>核心概念</h3>
<p>任何使用过Spring的Java或.NET版本的人，都会很快熟悉Spring ActionScript。你在运行时加载的配置文件，可以给工厂提供足够信息，用于实例化被应用请求的任何对象。</p>
<h3>基本配置</h3>
<p>在标准例子工程中使用Spring ActionScript，需如下三个基本步骤：</p>
<ol>
    <li>创建文件application-context.xml</li>
    <li>初始化应用中的工厂对象</li>
    <li>在你的视图层（或其他任何地方），根据需要从工厂获得对象以供使用</li>
</ol>
<br />
<h3>对象工厂和对象配置</h3>
<p>在Spring ActionScript中，对象声明在应用可访问的XML文件（通常命名为application-context.xml）中。此配置文件由XMLApplicationContext（是ObjectFactory的子类）加载。</p>
<p><br />
</p>
<p>Spring ActionScript是一个优秀的、成熟的、开发活动十分活跃的IOC框架，任何用过Spring框架的人都熟悉的。</p>
<p>以XML形式声明对象存在一个问题，即在XML中声明一个类，并且这个类没被包含在SWF中（因为在你的应用中没有对它的直接引用）时，Flash
Player会在运行时抛出异常。其解决办法是创建一个ActionScript类，声明它对上下文XML的依赖，并将此类包含在应用中。</p>
<p><br />
</p>
<h2>Parsley</h2>
<ul>
    <li>框架：Parsley</li>
    <li>网站：<a href="http://www.spicefactory.org/" target="_blank">http://www.spicefactory.org/</a></li>
    <li>开发者：Jens Halm</li>
    <li>版本：2.0.0</li>
    <li>许可：开源</li>
    <li>配置：XML/MXML/ActionScript</li>
</ul>
<p>Parsley也是一个成熟的IOC框架，最初灵感来源于Spring。它近期经历过一次较大规模的重写。新版本支持一些本地Flex特性，如绑定和元数据，使你在配置你的工程时有更多更好的选择。</p>
<h3>核心概念</h3>
<p>Parsley的核心概念是源自于Spring的上下文，也即应用的依赖注入的配置。</p>
<p>Parsley的配置现在支持多种形式，其中包括XML和MXML。你可以使用本地的MXML标记或Parsley库提供的自定义MXML标签。Parsley使用元数据标签实现对注入机制的支持，这和Swiz框架是类似的。</p>
<p>Parsley还支持消息模式。基本不需代码干预，你就能将你的对象配置为事件源或事件处理器。在这个例子中，我会用这个特性替代Controller模式。</p>
<h3>基本配置</h3>
<p>Parsley的配置分三个基本步骤：</p>
<ol>
    <li>创建Config.mxml文件。</li>
    <li>在应用的根部初始化一个Context对象。</li>
    <li>在你的视图中，用Inject元数据实现依赖的注入。</li>
</ol>
<p>准备配置文件的方法有多种，不过在这个例子中，我使用支持本地标记和Parsley标签的MXML文件。这种方法的好处是在编译时就将类引入，当然这样一来，也就不能直接修改已被编译的应用的配置了。</p>
<h3>对象工厂和对象配置</h3>
<p>在Config.mxml中，你能看到应用中用到的从域模型到代理的所有对象。声明这些对象的方式有两种：</p>
<ol>
    <li>标准的MXML</li>
    <li>使用Parsley的对象定义标签</li>
</ol>
<p>在后面的内容中，我将详细介绍这种方法。</p>
<h3>总结</h3>
经过其他一些框架的不断启发，新版本的Parsley已发展成为一个完整的IOC框架。它还支持模块式开发和上下文卸载。在模块化Flex应用开发日益盛行的今天，这无疑是一个十分重要的特性<br />
<br />
<br />
<span style="font-weight: bold;"><span style="font-size: 18pt;"><span style="font-size: 24pt;">Spring BlazeDS Integration</span></span></span><br />
其目标是：开发者可以利用Spring开发模型通过Adobe
Flex、BlazeDS、Spring以及Java技术创建RIA。这样我们就可以通过BlazeDS公开Spring管理的服务而无需额外的配置文
件。其优势在于将Spring的易用性与Flex、BlazeDS以及Java整合起来以共同创建应用。<br />
Spring的核心配置是通过Java bean实现的。借助于bean，任何Java类都能被公开成为服务。<br />
<br />
为了将这些bean公开成为Flex客户端所用的远程服务，Integration项目采用了Spring Web MVC。Spring Web
MVC将DispatcherServlet作为一个中央分发器，用以处理任何类型的HTTP请求或是基于HTTP的远程服务。我们可以通过相同的
JavaBean配置方式来配置该DispatcherServlet以将请求转发给相应的处理器进行后续处理。<br />
<br />
<br />
<img src ="http://www.blogjava.net/babymouse/aggbug/296987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2009-09-30 11:49 <a href="http://www.blogjava.net/babymouse/archive/2009/09/30/296987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>阿里巴巴校园招聘笔试题</title><link>http://www.blogjava.net/babymouse/archive/2009/09/26/296569.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Sat, 26 Sep 2009 10:38:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2009/09/26/296569.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/296569.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2009/09/26/296569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/296569.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/296569.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_29_123_Open_Image" onclick="this.style.display='none'; Codehighlighter1_29_123_Open_Text.style.display='none'; Codehighlighter1_29_123_Closed_Image.style.display='inline'; Codehighlighter1_29_123_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_29_123_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_29_123_Closed_Text.style.display='none'; Codehighlighter1_29_123_Open_Image.style.display='inline'; Codehighlighter1_29_123_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;B&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Object</span><span id="Codehighlighter1_29_123_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_39_71_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_71_Open_Text.style.display='none'; Codehighlighter1_39_71_Closed_Image.style.display='inline'; Codehighlighter1_39_71_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_39_71_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_71_Closed_Text.style.display='none'; Codehighlighter1_39_71_Open_Image.style.display='inline'; Codehighlighter1_39_71_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span id="Codehighlighter1_39_71_Open_Text"><span style="color: #000000">{System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Load&nbsp;B</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_84_121_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_121_Open_Text.style.display='none'; Codehighlighter1_84_121_Closed_Image.style.display='inline'; Codehighlighter1_84_121_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_84_121_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_84_121_Closed_Text.style.display='none'; Codehighlighter1_84_121_Open_Image.style.display='inline'; Codehighlighter1_84_121_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;B()</span><span id="Codehighlighter1_84_121_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Create&nbsp;B</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_149_246_Open_Image" onclick="this.style.display='none'; Codehighlighter1_149_246_Open_Text.style.display='none'; Codehighlighter1_149_246_Closed_Image.style.display='inline'; Codehighlighter1_149_246_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_149_246_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_149_246_Closed_Text.style.display='none'; Codehighlighter1_149_246_Open_Image.style.display='inline'; Codehighlighter1_149_246_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;A&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;B</span><span id="Codehighlighter1_149_246_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_159_194_Open_Image" onclick="this.style.display='none'; Codehighlighter1_159_194_Open_Text.style.display='none'; Codehighlighter1_159_194_Closed_Image.style.display='inline'; Codehighlighter1_159_194_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_159_194_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_159_194_Closed_Text.style.display='none'; Codehighlighter1_159_194_Open_Image.style.display='inline'; Codehighlighter1_159_194_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_159_194_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Load&nbsp;A</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_207_244_Open_Image" onclick="this.style.display='none'; Codehighlighter1_207_244_Open_Text.style.display='none'; Codehighlighter1_207_244_Closed_Image.style.display='inline'; Codehighlighter1_207_244_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_207_244_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_207_244_Closed_Text.style.display='none'; Codehighlighter1_207_244_Open_Image.style.display='inline'; Codehighlighter1_207_244_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;A()</span><span id="Codehighlighter1_207_244_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Create&nbsp;A</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_271_329_Open_Image" onclick="this.style.display='none'; Codehighlighter1_271_329_Open_Text.style.display='none'; Codehighlighter1_271_329_Closed_Image.style.display='inline'; Codehighlighter1_271_329_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_271_329_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_271_329_Closed_Text.style.display='none'; Codehighlighter1_271_329_Open_Image.style.display='inline'; Codehighlighter1_271_329_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;testClass&nbsp;</span><span id="Codehighlighter1_271_329_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_312_326_Open_Image" onclick="this.style.display='none'; Codehighlighter1_312_326_Open_Text.style.display='none'; Codehighlighter1_312_326_Closed_Image.style.display='inline'; Codehighlighter1_312_326_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_312_326_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_312_326_Closed_Text.style.display='none'; Codehighlighter1_312_326_Open_Image.style.display='inline'; Codehighlighter1_312_326_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)</span><span id="Codehighlighter1_312_326_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;A();<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
写出程序运行结果：<br />
<br />
<p>Load B<br />
Load A<br />
Create B<br />
Create A<br />
<br />
欢迎大家留言发散讨论</p>
<img src ="http://www.blogjava.net/babymouse/aggbug/296569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2009-09-26 18:38 <a href="http://www.blogjava.net/babymouse/archive/2009/09/26/296569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate怎样获取其用Oracle sequence自动生成的主键</title><link>http://www.blogjava.net/babymouse/archive/2009/03/11/259082.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Wed, 11 Mar 2009 05:49:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2009/03/11/259082.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/259082.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2009/03/11/259082.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/259082.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/259082.html</trackback:ping><description><![CDATA[<p>Case：<br />
action需要同时向两张表中添加数据<br />
比如一个是class 一个是video<br />
每次都是一对多的关系~每一次插入的Video的classID是相同的<br />
<br />
video表中有个字段是classId 对应的是的class中的主键&nbsp;&nbsp; ID<br />
<br />
ID是sequence生成的<br />
那我批量插入video的时候怎样获取class_ID_sequence生成的id值呢？<br />
<br />
思路：<br />
我观察到Hibernate做插入的时候每次插入记录的时候会首先查询sequence<br />
<br />
select CLASS_ID_SEQ.nextval from dual<br />
那怎样获取到这个select的值呢？<br />
<br />
获取到这个值可以直接给<br />
video.setClassID(classID)<br />
<br />
请大家讨论并指教~</p>
***************整理如下*******************<br />
执行完这句sql语句select CLASS_ID_SEQ.nextval from dual之后，class这个对象已经执行过setId方法，所以当前它的id值可以获得getId方法得到；<br />
可以直接在在action这样写<br />
Long id=class.getId();<br />
<br />
<br />
感谢隔叶黄莺
<img src ="http://www.blogjava.net/babymouse/aggbug/259082.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2009-03-11 13:49 <a href="http://www.blogjava.net/babymouse/archive/2009/03/11/259082.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts如何接收客户端发送过来的数组</title><link>http://www.blogjava.net/babymouse/archive/2009/03/04/257802.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Wed, 04 Mar 2009 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2009/03/04/257802.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/257802.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2009/03/04/257802.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/257802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/257802.html</trackback:ping><description><![CDATA[发送参数为<br />
<br />
deleteId：["3161104","3160521","1465591"]<br />
<br />
那我在action中的deleteId该定义成何种类型才能正常接收呢？<br />
<br />
<pre>问题解决了，在action中定义成List&lt;String&gt;
就可以</pre>
<img src ="http://www.blogjava.net/babymouse/aggbug/257802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2009-03-04 15:36 <a href="http://www.blogjava.net/babymouse/archive/2009/03/04/257802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>两个Long的比较</title><link>http://www.blogjava.net/babymouse/archive/2009/02/10/254045.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Tue, 10 Feb 2009 04:18:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2009/02/10/254045.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/254045.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2009/02/10/254045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/254045.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/254045.html</trackback:ping><description><![CDATA[今天遇到一个容易忽略的问题，是两个Long类型的比较~~<br />
<br />
if (v.getId() == ids[i]){<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &#8230;&#8230;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
<br />
getId()中返回值是Long id<br />
ids定义是Long[] ids<br />
<br />
但是这里v.getId() == ids[i]一直不为真，导致程序输出结果有误<br />
<br />
应该如下：<br />
<br />
<span style="color: #0010ff;"></span>if (v.getId().<span style="background-color: yellow;"><span style="background-color: yellow;"><span style="background-color: yellow;">longValue</span>() </span></span>== ids[i].<span style="background-color: yellow;"><span style="background-color: yellow;"><span style="background-color: yellow;">longValue</span>()</span></span>){&#8230;&#8230;}
<img src ="http://www.blogjava.net/babymouse/aggbug/254045.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2009-02-10 12:18 <a href="http://www.blogjava.net/babymouse/archive/2009/02/10/254045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>依赖注入~~同一个错误犯两遍就是煞笔</title><link>http://www.blogjava.net/babymouse/archive/2008/12/29/248954.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Mon, 29 Dec 2008 09:14:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/12/29/248954.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/248954.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/12/29/248954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/248954.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/248954.html</trackback:ping><description><![CDATA[Context initialization failed<br />
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'RssService' defined in ServletContext resource<br />
&nbsp;[/WEB-INF/vbm_dao.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: <br />
&nbsp;Invalid property 'rssDao' of bean class [gov.ict.mcg.vbm.services.impl.RssServiceImpl]: Bean property 'rssDao' <br />
&nbsp;is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?<br />
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'rssDao' of bean class <br />
[gov.ict.mcg.vbm.services.impl.RssServiceImpl]: Bean property 'rssDao' is not writable or has an invalid setter method.<br />
&nbsp;Does the parameter type of the setter match the return type of the getter?<br />
&nbsp;&nbsp; &nbsp;at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:793)<br />
<br />
<br />
原因：<br />
RssServiceImpl类中忘记添加dao的get set方法~~~<br />
<img src ="http://www.blogjava.net/babymouse/aggbug/248954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-12-29 17:14 <a href="http://www.blogjava.net/babymouse/archive/2008/12/29/248954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse3.2安装WTP提示需要3.4组件得解决办法</title><link>http://www.blogjava.net/babymouse/archive/2008/12/26/248396.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Fri, 26 Dec 2008 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/12/26/248396.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/248396.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/12/26/248396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/248396.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/248396.html</trackback:ping><description><![CDATA[Eclipse3.2装WTP时提示我需要需要3.4的功能组件 <br />
直接download~~~eclipse-jee-ganymede-win32.zip<br />
就可以了<br />
<img src ="http://www.blogjava.net/babymouse/aggbug/248396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-12-26 11:09 <a href="http://www.blogjava.net/babymouse/archive/2008/12/26/248396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cosmos框架</title><link>http://www.blogjava.net/babymouse/archive/2008/12/18/247166.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Thu, 18 Dec 2008 08:56:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/12/18/247166.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/247166.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/12/18/247166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/247166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/247166.html</trackback:ping><description><![CDATA[cosmos框架主要用来做中小项目开发，丢弃了传统的SSH架构，利用纯的Servlet+JDBC实现数据库操作。开发Web项目，可以实现无需写Java代码，
而实现业务逻辑，并且由于不需要写Java代码，因此，可以不需要重启和重新部署项目，就可以直接测试，达到了开发-&gt;刷新测试的水平。根据目前多
个项目的应用实践看来，基本上可以提高一倍到2/3的开发时间，而且性能比起SSH架构还要高，框架还要更加轻量级。因此，这个框架还是比较能够体现敏捷
开发的思想的。<br />
<br />
由于框架摒弃了Hibernate的O/R Mapping工具，因此有一个比较大的问题就是关于数据库移植性的问题，但是，根据公司对于中小项目的经验，一旦客户要移植数据库，几乎就需要重新实现业务逻辑了，因此，对于中小项目来说，这是一个不错的选择。<br />
<br />
——————<br />
官方介绍：<br />
<div id="wikicontent" style="padding: 0pt 3em 1.2em 0pt;">
<p>cosmos框架
是一个对于底层数据库、Web服务、JNDI等进行统一界面封装的框架，提供统一的调用接口，并采用命令设计模式，将所有需要调用的命令放置到数据库（或
者其他域）中去，从而可以改变传统的j2ee应用调试的流程：开发-部署-测试或者开发-部署-重新启动-测试，达到像PHP、PERL那样的开发
-&gt;测试的模式。有效地提高了开发速度。 </p>
<blockquote>由于其抛弃了所有的中间层次，包括像Struts、Spring、Hibernate这样的框架，调用数据库应用直接用JDBC的方式进行，因此有效地提高了运行性能。
由于开发的代码可以完全放置到数据库中，因此，可以比较容易地实现共享开发，从而有效地调动起开发人员的积极性。
在cosmos框架中开发一个数据库应用的流程是：开发SQL语句或者存储过程或者函数；然后开发JSP页面进行展示；最后测试结果。完全地省略了开发Java代码的过程，因此，有效地提高了开发速度。
cosmos框架是一个能有效地应用于中小项目的框架，可以供开发人员快速建立原型，从而实现敏捷开发的目的。
在框架中还包括权限和认证的部分框架，因此，用户可以简单地实现用户认证和系统权限的功能。
</blockquote>
</div>
<br />
<br />
http://code.google.com/p/cosmos4j/<br />
<img src ="http://www.blogjava.net/babymouse/aggbug/247166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-12-18 16:56 <a href="http://www.blogjava.net/babymouse/archive/2008/12/18/247166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库索引问题</title><link>http://www.blogjava.net/babymouse/archive/2008/12/09/245193.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Tue, 09 Dec 2008 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/12/09/245193.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/245193.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/12/09/245193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/245193.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/245193.html</trackback:ping><description><![CDATA[今天数据库直接超过4G，查了下原来是索引问题，一个索引占了2G大小~~<br />
<img src ="http://www.blogjava.net/babymouse/aggbug/245193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-12-09 11:53 <a href="http://www.blogjava.net/babymouse/archive/2008/12/09/245193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>前端系统-备忘1</title><link>http://www.blogjava.net/babymouse/archive/2008/12/08/244976.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Mon, 08 Dec 2008 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/12/08/244976.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/244976.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/12/08/244976.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/244976.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/244976.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;web-app&gt;<br />
&nbsp;&lt;display-name&gt;系统&lt;/display-name&gt;<br />
&nbsp;&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;log4jConfigLocation&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;/WEB-INF/log4j.properties&lt;/param-value&gt;<br />
&nbsp;&lt;/context-param&gt;<br />
&nbsp;&lt;!-- ContextConfigLocation --&gt;<br />
&nbsp;&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;/WEB-INF/vbm_action.xml,/WEB-INF/vbm_hibernate.xml,/WEB-INF/vbm_dao.xml&lt;/param-value&gt;<br />
&nbsp;&lt;/context-param&gt;</p>
<p>&nbsp;&lt;!-- 著名 Character Encoding filter --&gt;</p>
<p>&nbsp;&lt;filter&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;<br />
&nbsp;&nbsp;&lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-name&gt;encoding&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-value&gt;UTF-8&lt;/param-value&gt;<br />
&nbsp;&nbsp;&lt;/init-param&gt;<br />
&nbsp;&lt;/filter&gt;<br />
&nbsp;&lt;filter&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;struts2&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;<br />
&nbsp;&nbsp;&lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-name&gt;config&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-value&gt;struts-default.xml,struts-plugin.xml,struts.xml,struts_books.xml&lt;/param-value&gt;<br />
&nbsp;&nbsp;&lt;/init-param&gt;<br />
&nbsp;&lt;/filter&gt;</p>
<p>&nbsp;&lt;filter-mapping&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
&nbsp;&lt;filter-mapping&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;struts2&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
&nbsp;&lt;!-- 加入jpaFilter，是为了不让hibernate的session过早关闭，因为有的action会通过ajax动态调用 --&gt;<br />
&nbsp;&lt;filter&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;jpaFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;filter-class&gt;org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter&lt;/filter-class&gt;<br />
&nbsp;&nbsp;&lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-name&gt;entityManagerFactory&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-value&gt;entityManagerFactory&lt;/param-value&gt;<br />
&nbsp;&nbsp;&lt;/init-param&gt;<br />
&nbsp;&lt;/filter&gt;<br />
&nbsp;&lt;filter-mapping&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;jpaFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;url-pattern&gt;*.htm&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
&nbsp;&lt;!-- Listener contextConfigLocation --&gt;<br />
&nbsp;&lt;listener&gt;<br />
&nbsp;&nbsp;&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;<br />
&nbsp;&lt;/listener&gt;<br />
&nbsp;&lt;!-- Listener log4jConfigLocation --&gt;<br />
&nbsp;&lt;listener&gt;<br />
&nbsp;&nbsp;&lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener&lt;/listener-class&gt;<br />
&nbsp;&lt;/listener&gt;<br />
&nbsp;&lt;!-- Spring 刷新Introspector防止内存泄露 --&gt;<br />
&nbsp;&lt;listener&gt;<br />
&nbsp;&nbsp;&lt;listener-class&gt;org.springframework.web.util.IntrospectorCleanupListener&lt;/listener-class&gt;<br />
&nbsp;&lt;/listener&gt;<br />
&nbsp;&lt;!-- session超时定义,单位为分钟 --&gt;<br />
&nbsp;&lt;session-config&gt;<br />
&nbsp;&nbsp;&lt;session-timeout&gt;10&lt;/session-timeout&gt;<br />
&nbsp;&lt;/session-config&gt;<br />
&nbsp;&lt;!-- The Welcome File List --&gt;<br />
&nbsp;&lt;welcome-file-list&gt;<br />
&nbsp;&nbsp;&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;<br />
&nbsp;&lt;/welcome-file-list&gt;<br />
&lt;/web-app&gt;</p>
<img src ="http://www.blogjava.net/babymouse/aggbug/244976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-12-08 11:18 <a href="http://www.blogjava.net/babymouse/archive/2008/12/08/244976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发遇到问题-1</title><link>http://www.blogjava.net/babymouse/archive/2008/11/25/242505.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Tue, 25 Nov 2008 04:31:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/11/25/242505.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/242505.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/11/25/242505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/242505.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/242505.html</trackback:ping><description><![CDATA[<p>系统爬虫部分已经相当完善了，现在开始做前段开发，html+avaScript+spring+Hibernate<br />
ExtJS其实还是很强大，感觉有种webservice编程的感觉</p>
<p><font style="background-color: #cce8cf">今天MyEclipse中可以连到数据库上，并且可以显示各个表，可是写个Junit test 抛出异常<br />
Javava.sql.SQLException: Io 异常: The Network Adapter could not establish the connection<br />
JUnit控制台输出是这样的<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Could&nbsp;not&nbsp;connect&nbsp;to:&nbsp;&nbsp;:&nbsp;</span><span style="color: #000000">11716</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />java.net.SocketException:&nbsp;Unrecognized&nbsp;Windows&nbsp;Sockets&nbsp;error:&nbsp;</span><span style="color: #000000">10106</span><span style="color: #000000">:&nbsp;create<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.net.Socket.createImpl(Unknown&nbsp;Source)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.net.Socket.</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">&gt;</span><span style="color: #000000">(Unknown&nbsp;Source)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.net.Socket.</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">&gt;</span><span style="color: #000000">(Unknown&nbsp;Source)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.connect(RemoteTestRunner.java:</span><span style="color: #000000">560</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:</span><span style="color: #000000">377</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:</span><span style="color: #000000">196</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br />
<br />
奇怪的是我用笔记本写个测试连接就没问题；<br />
不知道是Myeclipse出了问题还是系统出了问题，之前装各种服务器把系统搞的有点毛病；<br />
希望这里有高人看到了给指点下这个问题原因在哪里~小弟先谢过<br />
</font></p>
<img src ="http://www.blogjava.net/babymouse/aggbug/242505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-11-25 12:31 <a href="http://www.blogjava.net/babymouse/archive/2008/11/25/242505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 计算CPU利用率</title><link>http://www.blogjava.net/babymouse/archive/2008/11/11/239906.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Tue, 11 Nov 2008 08:36:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/11/11/239906.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/239906.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/11/11/239906.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/239906.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/239906.html</trackback:ping><description><![CDATA[<font style="background-color: #cce8cf">&nbsp;计算CPU利用率：<br />
&nbsp; 1,&nbsp;&nbsp; 取出系统中CPU个数；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; 2,&nbsp;&nbsp; 取出当前系统时间（Ticks个数），减去原来保存的系统时间，得出从上次取值到目前的系统时间差；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; 3,&nbsp;&nbsp; 取出系统当前空闲时间，减去原来保存的空闲时间，得出这个时间段空闲时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; 4,&nbsp;&nbsp; 用这个时间段空闲时间除以系统时间，得出这段时间系统的CPU空闲率&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; 5,&nbsp;&nbsp; 用100-(系统的空闲率)/(CPU个数)所得的值就是CPU占有率&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
<br />
&nbsp;&nbsp;&nbsp; 请问这个算法是否适用于多处理器情况？<br />
&nbsp;&nbsp;&nbsp; 是否直接除以CPU个数就ok了？<br />
</font>
<img src ="http://www.blogjava.net/babymouse/aggbug/239906.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-11-11 16:36 <a href="http://www.blogjava.net/babymouse/archive/2008/11/11/239906.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java与python的效率比较思考</title><link>http://www.blogjava.net/babymouse/archive/2008/11/08/239352.html</link><dc:creator>Robert Su</dc:creator><author>Robert Su</author><pubDate>Fri, 07 Nov 2008 16:16:00 GMT</pubDate><guid>http://www.blogjava.net/babymouse/archive/2008/11/08/239352.html</guid><wfw:comment>http://www.blogjava.net/babymouse/comments/239352.html</wfw:comment><comments>http://www.blogjava.net/babymouse/archive/2008/11/08/239352.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/babymouse/comments/commentRss/239352.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/babymouse/services/trackbacks/239352.html</trackback:ping><description><![CDATA[java是一种解析性的语言，可是多了一个中间步骤，就是把源代码编译成class文件，不过此编译非编译器的编译，因为class里面不是机器语言或汇编语言，而是经过编码的8位字节二进制流。JVM是java的解析器。<br />
<br />
python是一门地地道道的解析型语言。<br />
它们之间的效率谁更高呢？<br />
<br />
大头 23:56:14<br />
&#8220;如果相同功能的class和python，class执行要快，因为class已经全部翻译好了，python还要一句一句解析。&#8221;<br />
<br />
Java多了编译成class的过程，所以效率相对于python要慢一些。<br />
<br />
事实上python也可以产生class一样的东西<br />
字节编译的.pyc文件<br />
&#8220;输入一个模块相对来说是一个比较费时的事情，所以Python做了一些技巧，以便使输入模块更加快一些。一种方法是创建 字节编译的文件 ，这些文件以.pyc作为扩展名。字节编译的文件与Python变换程序的中间状态有关（是否还记得Python如何工作的介绍？）。当你在下次从别的程序输入这个模块的时候，.pyc文件是十分有用的——它会快得多，因为一部分输入模块所需的处理已经完成了。另外，这些字节编译的文件也是与平台无关的。所以，现在你知道了那些.pyc文件事实上是什么了。&#8221;——《python简明教程》<br />
<br />
<br />
（烦请明白的看到了错误之处给指正：）<br />
<br />
附：<br />
编译型语言，执行速度快、效率高；依赖编译器、跨平台性差些。如C、C++、Delphi、Pascal，Fortran。<br />
解释型语言，执行速度慢、效率低；依赖解释器、跨平台性好。如Java、Basic.<br />
 <img src ="http://www.blogjava.net/babymouse/aggbug/239352.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/babymouse/" target="_blank">Robert Su</a> 2008-11-08 00:16 <a href="http://www.blogjava.net/babymouse/archive/2008/11/08/239352.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>