﻿<?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/wyxdeniro/category/27592.html</link><description>舍我其谁</description><language>zh-cn</language><lastBuildDate>Sun, 02 Dec 2007 18:35:20 GMT</lastBuildDate><pubDate>Sun, 02 Dec 2007 18:35:20 GMT</pubDate><ttl>60</ttl><item><title>简述构建高性能J2EE应用的五种核心策略（转赛迪网络）</title><link>http://www.blogjava.net/wyxdeniro/archive/2007/11/30/164241.html</link><dc:creator>王永庆</dc:creator><author>王永庆</author><pubDate>Fri, 30 Nov 2007 05:31:00 GMT</pubDate><guid>http://www.blogjava.net/wyxdeniro/archive/2007/11/30/164241.html</guid><wfw:comment>http://www.blogjava.net/wyxdeniro/comments/164241.html</wfw:comment><comments>http://www.blogjava.net/wyxdeniro/archive/2007/11/30/164241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wyxdeniro/comments/commentRss/164241.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wyxdeniro/services/trackbacks/164241.html</trackback:ping><description><![CDATA[<span class="a14c" id="zoom">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于J2EE，我们知道当开发应用时，在架构设计阶段的决定将对应用的性能和可扩展性产生深远的影响。现在当开发一个应用项目时，我们越来越多地注意到了性能和可扩展性的问题。应用性能的问题比应用功能的不丰富问题往往更为严重，前者会影响到所有用户，而后者只会影响到碰巧使用该功能的那些用户。
<p>&nbsp;&nbsp;&nbsp;&nbsp;作为应用系统的负责人，一直被要求"要少花钱多办事"----用更少的硬件，更少的网络带宽，以及更短的时间完成更多的任务。J2EE通过提供组件方式和通用的中间件服务是目前首选的最优方式。而要能够构建一个具有高性能和可扩展性的J2EE应用，需要遵循一些基本的架构策略。<br />
&nbsp;&nbsp;&nbsp;&nbsp;缓存(Caching) </p>
<p>简单地说，缓存中存放着频繁访问的数据，在应用的整个生命周期中，这些数据存放在持久性存储器或存放在内存中。在实际环境中，典型的现象是在分布式系统中每个JVM中有一个缓存的实例或者在多个JVM中有一个缓存的实例。 </p>
<p>缓存数据是通过避免访问持久性存储器来提高性能的，否则会导致过多的磁盘访问和过于频繁网络数据传输。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;复制 </p>
<p>复制是通过在多台物理机器上创建指定应用服务的多个拷贝来获得整体更大吞吐效率。理论上看，如果一个服务被复制成两个服务，那么系统将可处理两倍的请求。复制是通过单一服务的多个实例的方式从而减少每个服务的负载来提高性能的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;并行处理 </p>
<p>并行处理将一个任务分解为更为简单的子任务，并能够同时在不同的线程中执行。 </p>
<p>并行处理是通过利用J2EE层执行模式的多线程和多CPU特点来提高性能。与使用一个线程或CPU处理任务相比，以并行方式处理多个子任务可以使操作系统在多个线程或处理器中进行分配这些子任务</p>
&nbsp;&nbsp;&nbsp;&nbsp;异步处理
<p>应用功能通常被设计为同步或串行方式。异步处理只处理那些非常重要的任务部分，然后将控制立即返回给调用者，其他任务部分将在稍后执行。 </p>
<p>异步处理是通过缩短那些在将控制返回给用户之前必须处理的时间来提高性能的。虽然都做同样多的事情，但是用户不必等到整个过程完成就可以继续发出请求了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;资源池 </p>
<p>资源池技术使用的是一套准备好的资源。与在请求和资源之间维持1：1的关系的不同，这些资源可被所有请求所共享。资源池的使用是有条件的，需要衡量下面两种方式的代价： </p>
<p>A、维持一套可被所有请求共享资源的代价 </p>
<p>B、为每个请求都重新创建一个资源的代价 </p>
<p>当前者小于后者时，使用资源池才是有效率的。</p>
</span>
<img src ="http://www.blogjava.net/wyxdeniro/aggbug/164241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wyxdeniro/" target="_blank">王永庆</a> 2007-11-30 13:31 <a href="http://www.blogjava.net/wyxdeniro/archive/2007/11/30/164241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss设置mime </title><link>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163274.html</link><dc:creator>王永庆</dc:creator><author>王永庆</author><pubDate>Mon, 26 Nov 2007 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163274.html</guid><wfw:comment>http://www.blogjava.net/wyxdeniro/comments/163274.html</wfw:comment><comments>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163274.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wyxdeniro/comments/commentRss/163274.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wyxdeniro/services/trackbacks/163274.html</trackback:ping><description><![CDATA[<span style="color: #993300">在开发中如果使用</span><a href="http://localhost:8080/xxx/yyy/zzz.rar"><span style="color: #993300">http://localhost:8080/xxx/yyy/zzz.rar</span></a><span style="color: #993300">格式下载文件，点击下载，默认情况下会以网页的格式打开，这个时候就出现乱码，解决方法：<br />
</span><br />
<br />
<span style="color: #800080">在工程的WEB.XML文件中设置&lt;mime-mapping&gt;如下:<br />
<br />
&lt;mime-mapping&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;extension&gt;et&lt;/extension&gt; <span style="color: #008000">//这个是扩展名，如果是rar格式，就写rar</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mime-type&gt;application/octet-stream&lt;/mime-type&gt; <span style="color: #008000">//这个是固定格式<br />
</span>&lt;/mime-mapping&gt;</span> 
<img src ="http://www.blogjava.net/wyxdeniro/aggbug/163274.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wyxdeniro/" target="_blank">王永庆</a> 2007-11-26 17:34 <a href="http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163274.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Ant进行项目构建之一:环境搭建 （转载）</title><link>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163272.html</link><dc:creator>王永庆</dc:creator><author>王永庆</author><pubDate>Mon, 26 Nov 2007 09:33:00 GMT</pubDate><guid>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163272.html</guid><wfw:comment>http://www.blogjava.net/wyxdeniro/comments/163272.html</wfw:comment><comments>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wyxdeniro/comments/commentRss/163272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wyxdeniro/services/trackbacks/163272.html</trackback:ping><description><![CDATA[<span style="color: #993300">今天，开始使用ant进行项目构建之一：环境搭建。</span>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #993300">在一个项目开始之初，确定你将要使用的JDK的版本，以及ant版本，并在项目的生命周期内保持相对稳定，是一件非常重要的事情，同时，也建议在一个项目开始的时候，确定你使用的其它技术或框架的版本，比如是使用EJB2还是EJB3.0,是使用Spring1.2.x,还是直接使用Spring2.x?这些决定，将对整个项目的顺利进行，启到关键作用。</span></p>
<p>&nbsp;&nbsp; <span style="color: #993300">在此，我们使用JDK1.5,ant1.7开始项目的构建。</span></p>
<p>&nbsp;&nbsp; <span style="color: #000080">ant1.7的下载地址如下：</span><a href="http://ant.apache.org/"><font color="#002c99">http://ant.apache.org/</font></a></p>
<p>&nbsp;&nbsp;&nbsp;<span style="color: #993300"> 1.安装JDK，这应该是一项非常简单的工作，你只需要一路回车即可，在安装完JDK后，我们需要作一些基本设置，如设置&nbsp;&nbsp;&nbsp;&nbsp; JAVA_HOME.要在&#8220;我的电脑－&gt;属性－&gt;高级－&gt;环境变量－&gt;新建"指定：JAVA_HOME,指向你的JDK的安装目录 ，如：C:/JDK，然后，在classpath中添加：%JAVA_HOME%\bin;（注：如果你的系统中有多个jdk，如oracle自带的JDK,那么你需要确保它们排列的先后顺序）。</span></p>
<p>&nbsp; <font style="color: #993300" size="+0">如何知道自己的JDK环境变量指定成功？&#8220;开始－&gt;运行－&gt;cmd&#8220;键入命令：java -version，如果可以看到如下信息，说明你的JDK环境初步配置成功。</font></p>
<p style="color: #993300"><font face="Arial">E:\Documents and Settings\ecsun&gt;java -version<br />
java version "1.5.0_06"<br />
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)<br />
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)</font></p>
<p><font style="color: #993300" size="+0">2.安装ant</font></p>
<p><span style="color: #993300">将你下载的压缩包解压，然后放在你喜欢的任何位置，如:c:/ant/，然后在&#8220;我的电脑－&gt;属性－&gt;高级－&gt;环境变量－&gt;新建&#8221;指定:ANT_HOME,值为：c:/ant，并在classpath中添加：%ANT_HOME%\bin;</span></p>
<p><font style="color: #993300" size="+0">如何知道自己的ant是否安装成功？&#8220;开始－&gt;运行－&gt;cmd&#8220;，键入命令：ant&nbsp; -version,如果可以看到以下信息，说明你的ant安装成功。</font></p>
<p><font style="color: #993300" face="Arial">E:\Documents and Settings\ecsun&gt;ant -version<br />
Apache Ant version 1.7.0 compiled on December 13 2006</font></p>
<p style="color: #993300">是的，我们所有的安装工作已经结束，ant 就是这么简单。明天将进行正式开始第一段ant脚本的编写。</p>
<img src ="http://www.blogjava.net/wyxdeniro/aggbug/163272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wyxdeniro/" target="_blank">王永庆</a> 2007-11-26 17:33 <a href="http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Ant进行项目构建之二:规划我们的项目目录结构 （转载） </title><link>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163273.html</link><dc:creator>王永庆</dc:creator><author>王永庆</author><pubDate>Mon, 26 Nov 2007 09:33:00 GMT</pubDate><guid>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163273.html</guid><wfw:comment>http://www.blogjava.net/wyxdeniro/comments/163273.html</wfw:comment><comments>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wyxdeniro/comments/commentRss/163273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wyxdeniro/services/trackbacks/163273.html</trackback:ping><description><![CDATA[<p style="color: #993300">前面已经把ant的基本运行环境搭建好了，在接下来的工作中，将一步一步的开始构建我们的项目。</p>
<p style="color: #993300">选择项目目录结构：</p>
<p style="color: #993300">一个项目开始的时候，选择一个合适的项目目录结构，是一件很重要的事情，可能你会很习惯由IDE自动创建的目录结构，如Elcipse或JB,但有些时候，这样的目录结构可能并不是最好的，所以，在项目开始的时候，我们要对我们的目录结构进行合理的规划，这样，我们的项目在向前推动的过程中，才会井然有序。我个人比较推崇按项目模块来划分目录结构，这样整个项目不管进行到什么时候，也不管项目中有多少类，都可以很方便的找到你想要的资源。当然，对于一个项目来说，都有一个核心支撑模块来构成整个项目的骨架，那我们就从这个骨架开始，来构建我们的项目。</p>
<p style="color: #993300">1.在你工作的任意硬盘上创建目录:x:/project,并在x:/project 下新建四个xml文件，文件名分别命名为：build-basic-environment.xml,build-common-java.xml,build.xml.build-common.xml</p>
<p style="color: #993300">2.其中，builde-basic-environment.xml为进行系统构建的基础环境变量的设置，当然，可能有些ant用户喜欢使用.properties文件进行这些变量的描述，但我们个更喜欢以标准的xml格式来描述，并推荐使用这一方式。本文件的基本形式如下：</p>
<p style="color: #993300"><font face="Arial">&lt;!--l version="1.0" encoding="UTF-8--&gt;</font></p>
<div style="color: #993300"><font face="Arial"><font face="Arial">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&nbsp;
<property name="template.dir" value="${basedir}/template"></property>
<br />
</project>
</font><br />
</font></div>
<p style="color: #993300">当然 ，以后我们的全局信息，可以不断的添加到本文件中。</p>
<p style="color: #993300">3.build-common.xml,在本构建文件中，书写与模块相关的基础信息，虽然这些都是一些很简单的基础信息，但对整个项目来说，却像骨架一样。文件如下：</p>
<font face="Arial"><font face="Arial">
<p style="color: #993300"><font face="Arial">&lt;!--l version="1.0" encoding="UTF-8--&gt;<br />
<project name="common"></project>
</font></p>
<font face="Arial">
<p style="color: #993300"><font face="Arial">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</font><font face="Arial">&nbsp;</font></p>
</font></font>
<p style="color: #993300"><font face="Arial">4.接下来，我们来看build-common-java.xml文件，在这个文件里面，我们主要进行编译，打包，测试，发布等工作。今天发布的只是与项目目录结构构建相关的脚本。</font></p>
<p style="color: #993300"><font face="Arial">&lt;!--l version="1.0" encoding="UTF-8--&gt;<font face="Arial"><font size="+0">&nbsp;</font><font face="Arial"><font size="+0">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
<project name="build-common-java"></font></font></font></font></p>
<p style="color: #993300"><font face="Arial">5.下面，我们在x:/project目录下新建文件夹template，并在本文件夹下新增以下结构的xml文件，名为：build.xml</font></p>
<p style="color: #993300"><font face="Arial"><font face="Arial">&lt;!--l version="1.0" encoding="UTF-8--&gt;<br />
<project name="modeltemplate" basedir="."></project>
</font></font></p>
<p style="color: #993300"><font face="Arial">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</font><br />
</p>
<p style="color: #993300"><font face="Arial">6.下面我们开始书写x:/project/build.xml脚本：</font></p>
<font face="Arial">
<p style="color: #993300"><font face="Arial">&lt;?xml version="1.0" encoding="UTF-8"?</font></ant></p>
<p style="color: #993300">好了，现在我们所有的工作做完了，在目录x:/project键入命令：</p>
<p style="color: #993300">ant create-new-model，输入你想要使用的模块名，看会出现什么结果？下载附件试一试？</p>
</font></font>
<img src ="http://www.blogjava.net/wyxdeniro/aggbug/163273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wyxdeniro/" target="_blank">王永庆</a> 2007-11-26 17:33 <a href="http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>