??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲成av片在线观看,亚洲美女视频免费,亚洲ts人妖网站http://www.tkk7.com/asktalk/<span class="STYLE3">天行健,君子以自Z息!</span>zh-cnFri, 09 May 2025 12:35:53 GMTFri, 09 May 2025 12:35:53 GMT60高性能分页标签extremeTable的Limit设计架构思想剖析http://www.tkk7.com/asktalk/archive/2007/12/26/170625.htmlAsktalkAsktalkWed, 26 Dec 2007 08:17:00 GMThttp://www.tkk7.com/asktalk/archive/2007/12/26/170625.htmlhttp://www.tkk7.com/asktalk/comments/170625.htmlhttp://www.tkk7.com/asktalk/archive/2007/12/26/170625.html#Feedback5http://www.tkk7.com/asktalk/comments/commentRss/170625.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/170625.htmlq是一个目前最好的一个开源分|{实现---extremeTable标签。今天谈谈它?/span>Limit的设计架构思想?/span>

q个设计很通用Q经q作者的多次重构Q现在extremeTable的架构非常漂亮。这个标{在缺Ҏ有些参数对mvc控制器屏蔽了Q应提供一致的对外接口。不q整体上设计q是很精致的Q面向对象来处理 html元素Q与spring非常的默?/span>Q非怾于开发和试?/span>

cd关系

1Q?nbsp;工厂LimitFactory

TableLimitFactoryQ?/span>AbstractLimitFactoryQ?/span>LimitFactory

TableLimitFactory是最l实现的工厂Q它extends?/span>AbstractLimitFactory抽象c,AbstractLimitFactory c?/span>implements?/span>LimitFactory接口?/span>

TableLimitFactory主要是用来实例化Q通过构造函C入参数。同时创?/span>Registry来完?/span>jsp面参数传入Registry。当然还有一个功能就是从web.xml的配|文件读取一些全局参数。首先读取配|文件参敎ͼ然后Ҏ参数创徏LimitRegistry对象?/span>

this.registry = new LimitRegistry(context, tableId, prefixWithTableId, state, stateAttr);

AbstractLimitFactory主要是用来获?/span>jsp面上设|的参数Q比如分늚信息Q第几页Qv始行Q结束行Q每|C敎ͼ查询条gQ排序条件等Q,当然他是通过工具c?/span>Registry来实现?/span>

2Q?nbsp;Limit

TableLimitQ?/span>Limit。其主要作用是一个参数参数器Q就是把Registry对象的参C?/span>TableLimitQ考虑到分层吧Q?/span>TableLimit是该标签?/span>action通信的桥梁。就像我们的j2eevo?/span>dao?/span>struts{?/span>view{数据传输工兗?/span>

3Q?nbsp;Preferences

TablePropertiesQ?/span>Properties 主要是来实现?/span>web.xml配置的文件中d配置的一些全局参数?/span>

InputStream input = this.getClass().getResourceAsStream(preferencesLocation);

if (input != null) {

properties.load(input);

}

其中preferencesLocation是\径,?/span>TableLimitFactory初始化时候,通过工具c?/span>TableModelUtils.getPreferencesLocation(context)获取?/span>

q个设计也是大多数需要配|文件的pȝ常用的方法?/span>

4Q?nbsp;Registry

LimitRegistryQ?/span>AbstractRegistryQ?/span>Registry

q个体系l构和上面的工厂模式一P是LimitRegistry主要是用来实例化Q通过构造函C入参数?/span>AbstractRegistry是实际实现类Q获?/span>jsp表单提交的参敎ͼq提?/span>getterҎ?/span>Limit来用?/span>Registry是一个接口?/span>

所以这设计模式Q我们可以来学习Q?/span>

l典表述Q?span style="color: red">c?/span>?/span>抽象c?/span>?/span>接口

c:初始化,定义构造函敎ͼ传入参数?/span>

抽象c:定义业务Ҏ在此?/span>

接口Q定义接口方法,q个不用多说?/span>

Q作者:asktalk   来自 http://www.tkk7.com/askltak 原创文章Q{载请注明出处Q?/p>

Asktalk 2007-12-26 16:17 发表评论
]]>
Spring Web框架与Struts的区?/title><link>http://www.tkk7.com/asktalk/archive/2007/12/25/asktalk.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Mon, 24 Dec 2007 18:23:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2007/12/25/asktalk.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/170198.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2007/12/25/asktalk.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/170198.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/170198.html</trackback:ping><description><![CDATA[<p>  </p> <p><span style="font-family: 宋体">下面是从</span>struts<span style="font-family: 宋体">的角度来谈谈</span>spring<span style="font-family: 宋体">自带?/span>web<span style="font-family: 宋体">框架的用?/span><span style="font-family: 宋体"><br /> 当然Q我们在配置</span>web<span style="font-family: 宋体">框架前,需要把</span>spring<span style="font-family: 宋体">配置好,q里׃多说了?/span></p> <h1 style="margin-left: 18pt; text-indent: -18pt">1.web<span style="font-family: 宋体">框架核心</span>servlet<span style="font-family: 宋体">?/span>web.xml<span style="font-family: 宋体">中的配置?br /> </span></h1> <p style="margin-left: 18pt; text-indent: 0cm"><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"><span style="color: #008080"> 1</span><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000"><</span><span style="color: #000000">servlet</span><span style="color: #000000">></span><span style="color: #000000">  <br /> </span><span style="color: #008080"> 2</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">></span><span style="color: #000000">Dispatcher</span><span style="color: #000000"></</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">></span><span style="color: #000000">  <br /> </span><span style="color: #008080"> 3</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">></span><span style="color: #000000">org.springframework.web.servlet.DispatcherServlet</span><span style="color: #000000"></</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">></span><span style="color: #000000">  </span><span style="color: #000000"><</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">></span><span style="color: #000000">   <br /> </span><span style="color: #008080"> 4</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">></span><span style="color: #000000">contextConfigLocation</span><span style="color: #000000"></</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">></span><span style="color: #000000">   </span><span style="color: #000000"><</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">>/</span><span style="color: #000000">WEB</span><span style="color: #000000">-</span><span style="color: #000000">INF</span><span style="color: #000000">/</span><span style="color: #000000">Config.xml</span><span style="color: #000000"></</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 5</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />  </span><span style="color: #000000"></</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">></span><span style="color: #000000"> <br /> </span><span style="color: #008080"> 6</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"></</span><span style="color: #000000">servlet</span><span style="color: #000000">></span><span style="color: #000000">  <br /> </span><span style="color: #008080"> 7</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><br /> </span><span style="color: #008080"> 8</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">></span><span style="color: #000000">  <br /> </span><span style="color: #008080"> 9</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">></span><span style="color: #000000">Dispatcher</span><span style="color: #000000"></</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">></span><span style="color: #000000">  <br /> </span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><</span><span style="color: #000000">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">>*</span><span style="color: #000000">.</span><span style="color: #0000ff">do</span><span style="color: #000000"></</span><span style="color: #000000">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> </span><span style="color: #000000"></</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span></div> <p style="margin-left: 18pt; text-indent: 0cm"> </p> <p style="margin-left: 18pt; text-indent: 0cm"><span style="font-family: 宋体">如果没有配置</span>config.xml<span style="font-family: 宋体">文gQ那么其默认的配|文件ؓ</span>[ servlet-name ]-servlet.xml <span style="font-family: 宋体">。也是我们q个配置的默认配|文件是</span>Dispatcher-servlet.xml</p> <h1 style="margin-left: 18pt; text-indent: -18pt">2.web<span style="font-family: 宋体">框架?/span>xml<span style="font-family: 宋体">配置</span></h1> <p>spring web<span style="font-family: 宋体">框架?/span>struts<span style="font-family: 宋体">最大的不同是</span>spring web<span style="font-family: 宋体">框架Ҏ分工Q把每一U功能都定义ZU组Ӟ所以在开发过E中需要配|的东西非常多Q?/span>Spring<span style="font-family: 宋体">中分为几个角Ԍ</span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">l </span><span style="font-family: 宋体">核心控制器,是</span>web<span style="font-family: 宋体">框架的主</span> servlet<span style="font-family: 宋体">Q?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">l </span><span style="font-family: 宋体">业务控制器,也就?/span>struts<span style="font-family: 宋体">中的</span>action<span style="font-family: 宋体">对象Q?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">l </span><span style="font-family: 宋体">映射处理器,定义了访问\径如何与</span>web<span style="font-family: 宋体">?/span>xml<span style="font-family: 宋体">中的</span>bean<span style="font-family: 宋体">相匹配,是定义了一U策略;</span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">l </span><span style="font-family: 宋体">视图和视图解析器Q视囑ְ?/span>jstl,velocity,xslt<span style="font-family: 宋体">{,视图解析器定义了</span>action<span style="font-family: 宋体">最l导航页面的{略Q?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">l </span><span style="font-family: 宋体">模型Q就?/span>struts MVC<span style="font-family: 宋体">l构中的</span>model<span style="font-family: 宋体">Q?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">l </span>Command<span style="font-family: 宋体">对象Q类g</span>struts<span style="font-family: 宋体">中的</span>formBean<span style="font-family: 宋体">Q?/span></p> <h2>2.1 Spring web<span style="font-family: 宋体">框架?/span>struts<span style="font-family: 宋体">框架的区?/span></h2> <p><span style="font-family: 宋体">下面列出了一些。例如,</span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span>Web<span style="font-family: 宋体">框架要拦?/span>*.do<span style="font-family: 宋体">路径Q那?/span>*.do<span style="font-family: 宋体">如何与我们下面的</span>bean<span style="font-family: 宋体">匚wQ就需要一个映控制器。在</span>struts<span style="font-family: 宋体">中就是名字相同的匚wQ不需要配|?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span>action<span style="font-family: 宋体">最后要导向C同的面Q在</span>struts<span style="font-family: 宋体">中我们用的是默认的不需要在</span>xml<span style="font-family: 宋体">文g中配|,?/span>spring<span style="font-family: 宋体">中就需要配|视图解析器?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span><span style="font-family: 宋体">下面代码中,</span>Action<span style="font-family: 宋体">?/span><span style="font-family: 'Courier New'">commandClass</span><span style="font-family: 宋体">配置的就是类g</span><span style="font-family: 'Courier New'">struts</span><span style="font-family: 宋体">中的</span><span style="font-family: 'Courier New'">formBean</span><span style="font-family: 宋体">对象?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"><span style="color: #008080"> 1</span><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000"><?</span><span style="color: #000000">xml version</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">"</span><span style="color: #000000"> encoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">?></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 2</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"><!</span><span style="color: #000000">DOCTYPE beans PUBLIC </span><span style="color: #000000">"</span><span style="color: #000000">-//SPRING//DTD BEAN//EN</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 3</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000">"</span><span style="color: #000000">http://www.springframework.org/dtd/spring-beans.dtd</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 4</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"><</span><span style="color: #000000">beans</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 5</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"><!--</span><span style="color: #000000">Definition of View Resolver </span><span style="color: #000000">--></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 6</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"><</span><span style="color: #000000">bean id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">viewResolver</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 7</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">org.springframework.web.servlet.view.InternalResourceViewResolver</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 8</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"><</span><span style="color: #000000">property name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">viewClass</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"> <br /> </span><span style="color: #008080"> 9</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"><</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000">org.springframework.web.servlet.view.JstlView</span><span style="color: #000000"></</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"></</span><span style="color: #000000">property</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"><</span><span style="color: #000000">property name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">prefix</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"><</span><span style="color: #000000">value</span><span style="color: #000000">>/</span><span style="color: #000000">WEB</span><span style="color: #000000">-</span><span style="color: #000000">INF</span><span style="color: #000000">/</span><span style="color: #000000">view</span><span style="color: #000000">/</</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"></</span><span style="color: #000000">property</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"><</span><span style="color: #000000">property name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">suffix</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"><</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000">.jsp</span><span style="color: #000000"></</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"></</span><span style="color: #000000">property</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"></</span><span style="color: #000000">bean</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  <br /> </span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"><!</span><span style="color: #000000">—就是我们上面说的映控制器 </span><span style="color: #000000">--></span><span style="color: #000000"><br /> </span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"><!--</span><span style="color: #000000">Request Mapping </span><span style="color: #000000">--></span><span style="color: #000000"><br /> </span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"><</span><span style="color: #000000">bean id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">urlMapping</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">org.springframework.web.servlet.handler.SimpleUrlHandlerMapping</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"><</span><span style="color: #000000">property name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">mappings</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"><</span><span style="color: #000000">props</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #000000"><</span><span style="color: #000000">prop key</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">/login.do</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000">LoginAction</span><span style="color: #000000"></</span><span style="color: #000000">prop</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"></</span><span style="color: #000000">props</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"></</span><span style="color: #000000">property</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"></</span><span style="color: #000000">bean</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> <br /> </span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"><!---</span><span style="color: #000000">cM于struts的action配置</span><span style="color: #000000">--></span><span style="color: #000000"><br /> </span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"><!---</span><span style="color: #000000">Action Definition</span><span style="color: #000000">--></span><span style="color: #000000"><br /> </span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"><</span><span style="color: #000000">bean id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">LoginAction</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.maxway.action.LoginAction</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"><</span><span style="color: #000000">property name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">commandClass</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">35</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"><</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000">com.maxway.action.LoginInfo</span><span style="color: #000000"></</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"></</span><span style="color: #000000">property</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">37</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"><</span><span style="color: #000000">property name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">fail_view</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"><</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000">loginfail</span><span style="color: #000000"></</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"></</span><span style="color: #000000">property</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">40</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"><</span><span style="color: #000000">property name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">success_view</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />   </span><span style="color: #000000"><</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000">main</span><span style="color: #000000"></</span><span style="color: #000000">value</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  </span><span style="color: #000000"></</span><span style="color: #000000">property</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /> </span><span style="color: #000000"></</span><span style="color: #000000">bean</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">44</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"></</span><span style="color: #000000">beans</span><span style="color: #000000">></span><span style="color: #000000"><br /> </span><span style="color: #008080">45</span><span style="color: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <p style="margin-left: 21pt; text-indent: -21pt"><br /> </span></p> <h1 style="margin-left: 18pt; text-indent: -18pt"> </h1> <h1 style="margin-left: 18pt; text-indent: -18pt">3.<span style="font-family: 宋体">代码的编?/span></h1> <p style="margin-left: 18pt; text-indent: 0cm">Action<span style="font-family: 宋体">不外乎承一些现成的c,来实现我?/span>view<span style="font-family: 宋体">部分的业务?br /> <span style="font-family: 宋体">作者:<a href="http://www.tkk7.com/asktalk">http://www.tkk7.com/asktalk</a></span></span></p> <img src ="http://www.tkk7.com/asktalk/aggbug/170198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2007-12-25 02:23 <a href="http://www.tkk7.com/asktalk/archive/2007/12/25/asktalk.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse启动机制Q?Q?/title><link>http://www.tkk7.com/asktalk/archive/2007/12/22/169593.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sat, 22 Dec 2007 08:33:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2007/12/22/169593.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/169593.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2007/12/22/169593.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/169593.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/169593.html</trackback:ping><description><![CDATA[  <p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋?>最q我一直在研究</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>的架构体p,下面我们来看看</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>的启动机制吧</span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">1</span><span style="font-size: 10.5pt; font-family: 新宋?>?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>源代?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">        <br /> eclipse-sourceBuild-srcIncluded-3.3.1.1.zip    </span><span style="font-size: 10.5pt; font-family: 新宋?>版本Q?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">3.3.1.1        </span><span style="font-size: 10.5pt; font-family: 新宋?>大小Q?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">95.058MB<br /> </span><span style="font-size: 10.5pt; font-family: 新宋?>下蝲地址Q?/span><a ><span style="font-size: 10.5pt; color: windowtext; font-family: 'Arial','sans-serif'; text-decoration: none; text-underline: none">http://download.eclipse.org/eclipse/downloads</a></span></p> <p style="background: white">解压后的目录l构如下图,通过执行build.bat可以~译出完整的Eclipse-sdk-3.3.1.1q行包,和我们网上下载的一栗但是这个过E可能需要一个小时左右的旉Q要有耐性哦。所有的插g工程目录在plugins中,我们只需要导入现有工E即可把plugins下所有工E导入?br /> <img height="567" alt="" src="http://www.tkk7.com/images/blogjava_net/asktalk/eclipse1.jpg" width="446" border="0" /><br /> </p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋?>下面我们先来研I一?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>最核心的部分,是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">RCP</span><span style="font-size: 10.5pt; font-family: 新宋?>部分必须的插件。下面我列出?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse RCP</span><span style="font-size: 10.5pt; font-family: 新宋?>需要的插g?br /> <img height="348" alt="" src="http://www.tkk7.com/images/blogjava_net/asktalk/eclipse.jpg" width="435" border="0" /><br /> </span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋?>这些代码解压羃C个空目录里,然后导入?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Source Insight</span><span style="font-size: 10.5pt; font-family: 新宋?>?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Project</span><span style="font-size: 10.5pt; font-family: 新宋?>里?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">      </span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋?>二?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>启动q程</span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋?>首先我们?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>的启动过E开始分析?/span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">1</span><span style="font-size: 10.5pt; font-family: 新宋?>?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">exe</span><span style="font-size: 10.5pt; font-family: 新宋?>部分的引?/span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse.exe</span><span style="font-size: 10.5pt; font-family: 新宋?>?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>的启动文Ӟ是与q_相关的可执行文g。它的功能比较简单,主要是加?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋?>文gQ代码在</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>源代码的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse-sourceBuild-srcIncluded-3.3.1.1"plugins"org.eclipse.platform"launchersrc.zip</span><span style="font-size: 10.5pt; font-family: 新宋?>Q对应多个^台。对?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">win32</span><span style="font-size: 10.5pt; font-family: 新宋?>q_Q你可以直接q行</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">win32</span><span style="font-size: 10.5pt; font-family: 新宋?>目录下的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">build.bat</span><span style="font-size: 10.5pt; font-family: 新宋?>文g来编译得到它Q需要安?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">C</span><span style="font-size: 10.5pt; font-family: 新宋?>~译器)?/span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">2</span><span style="font-size: 10.5pt; font-family: 新宋?>?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">java</span><span style="font-size: 10.5pt; font-family: 新宋?>代码部分的执行入?/span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋?>对于</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse 3.3.1.1</span><span style="font-size: 10.5pt; font-family: 新宋?>版本来说Q如果在</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>目录下没有找?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋?>Q则直接执行</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.equinox.launcher.Main.main</span><span style="font-size: 10.5pt; font-family: 新宋?>Ҏ?/span></p> <p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋?>当然我们可以?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>目录下定制我们自q启动引导?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋?>Q现?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse 3.3.1.1</span><span style="font-size: 10.5pt; font-family: 新宋?>好像已经不徏议这样做了。如果有q个包,那么q个包将?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">java</span><span style="font-size: 10.5pt; font-family: 新宋?>代码的执行入口,你可以在命o行下q行</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">java -jar startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋?>命o来启?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋?>。它的入口是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.core.launcher.Main</span><span style="font-size: 10.5pt; font-family: 新宋?>c,q个cLl执行的q是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.equinox.launcher.Main.main</span><span style="font-size: 10.5pt; font-family: 新宋?>Ҏ。它对应的源代码?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.equinox.launcher</span><span style="font-size: 10.5pt; font-family: 新宋?>目录下的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Main.java</span><span style="font-size: 10.5pt; font-family: 新宋?>。关于此文g的定制详l信息请查看</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse-sourceBuild-srcIncluded-3.3.1.1"plugins"org.eclipse.platform"launchersrc.zip</span><span style="font-size: 10.5pt; font-family: 新宋?>中的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse.c</span><span style="font-size: 10.5pt; font-family: 新宋?>的注解部分?br /> <br /> <span style="font-size: 10.5pt; font-family: 新宋?>我们?/span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">main</span><span style="font-size: 10.5pt; font-family: 新宋?>函数往后跟t,扑ֈ</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">basicRun</span><span style="font-size: 10.5pt; font-family: 新宋?>ҎQ这个是启动的主要部分?/span><br /> </span></p> <p style="background: white"> <table cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td> <div> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">    </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">protected</span></strong><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">void</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> basicRun(String[] args) </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">throws</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> Exception {</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        System.<em>getProperties</em>().put(</span><span style="font-size: 9pt; color: #2a00ff; font-family: 'Arial','sans-serif'">"eclipse.startTime"</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">, Long.<em>toString</em>(System.<em>currentTimeMillis</em>())); </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//$NON-NLS-1$</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">commands</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> = args;</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        String[] passThruArgs = processCommandLine(args);</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">if</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> (!</span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">debug</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">)</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">           </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// debug can be specified as system property as well</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">           </span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">debug</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> = System.<em>getProperty</em>(</span><em><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">PROP_DEBUG</span></em><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">) != </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">null</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">;</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        setupVMProperties();     </span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋?>讄</span><span style="font-family: 'Arial','sans-serif'">VM</span><span style="font-family: 新宋?>属?/span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        processConfiguration();   </span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋?>d</span><span style="font-family: 'Arial','sans-serif'">configuration/config.ini</span><span style="font-family: 新宋?>配置文g</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// need to ensure that getInstallLocation is called at least once to initialize the value.</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// Do this AFTER processing the configuration to allow the configuration to set</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// the install location. </span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        getInstallLocation();</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// locate boot plugin (may return -dev mode variations)</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        URL[] bootPath = getBootPath(</span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">bootLocation</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">);</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//Set up the JNI bridge. We need to know the install location to find the shared library</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        setupJNI(bootPath);</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//ensure minimum Java version, do this after JNI is set up so that we can write an error message </span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//with exitdata if we fail.</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">if</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> (!checkVersion(System.<em>getProperty</em>(</span><span style="font-size: 9pt; color: #2a00ff; font-family: 'Arial','sans-serif'">"java.version"</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">), System.<em>getProperty</em>(</span><em><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">PROP_REQUIRED_JAVA_VERSION</span></em><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">))) </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//$NON-NLS-1$</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">            </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">return</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">;</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        setSecurityPolicy(bootPath); </span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋?>讄执行权限</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// splash handling is done here, because the default case needs to know</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// the location of the boot plugin we are going to use</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        handleSplash(bootPath);</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        beforeFwkInvocation();</span></p> <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">        invokeFramework(passThruArgs, bootPath);    </span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋?>启动</span><span style="font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-family: 新宋?>内核</span></p> <p><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">    }</span></p> </div> </td> </tr> </tbody> </table> </p> <img src ="http://www.tkk7.com/asktalk/aggbug/169593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2007-12-22 16:33 <a href="http://www.tkk7.com/asktalk/archive/2007/12/22/169593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最q正在研I的Eclipse插g目http://www.tkk7.com/asktalk/archive/2007/12/22/169490.htmlAsktalkAsktalkFri, 21 Dec 2007 16:43:00 GMThttp://www.tkk7.com/asktalk/archive/2007/12/22/169490.htmlhttp://www.tkk7.com/asktalk/comments/169490.htmlhttp://www.tkk7.com/asktalk/archive/2007/12/22/169490.html#Feedback0http://www.tkk7.com/asktalk/comments/commentRss/169490.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/169490.html
1QHibernate Synchronizer Eclipse Plugin   最q更新在2006.04.26
      http://hibernatesynch.sourceforge.net/   
      源代码::pserver:anonymous@hibernatesynch.cvs.sourceforge.net:/cvsroot/hibernatesynch   
      HibernateSynchronizer3   为新目Q支持Eclipse3
      HibernateSynchronizer     为旧目Q支持Eclipse2 

      本插件用方法:http://dev2dev.bea.com.cn/bbsdoc/20060124187.html
     可以生成hibernate的所有配|文件和dao。基本流E是 hibernate.cfg.xml->xxx.hbm.xml->po and dao

2,  SqlExplorer    最q更?2007.09.08
     http://www.sqlexplorer.org/index.php
     http://sourceforge.net/projects/eclipsesql
     源代码::pserver:anonymous@eclipsesql.cvs.sourceforge.net:/cvsroot/eclipsesql
     与myEclipse的数据库理工具相近?br />
3QGmailClipse 一个Eclipse RCP 
     http://sourceforge.net/projects/gmclipse/
     源代码::pserver:anonymous@gmclipse.cvs.sourceforge.net:/cvsroot/gmclipse    源代码ؓI,没有׃n
     像hotmail一L邮g客户端收发系l。其源代码对于学习RCP有很大的帮助?br />
4,  SpringIde    spring官方的IDE工具?br />       源代码:http://springide.org/project/browser/trunk

5Q?Hibernate tools   hibernate官方IDE工具?br />        官方介绍Q?a >http://www.hibernate.org/268.html 
       源代码svn: http://anonhibernate.labs.jboss.com/branches/Branch_3_2/HibernateExt 

6,   Html解析工具 HTML Parser
      官方|址Q?a >http://htmlparser.sourceforge.net/
     

     
     

Asktalk 2007-12-22 00:43 发表评论
]]>
MySQL常用命ohttp://www.tkk7.com/asktalk/archive/2007/12/21/169201.htmlAsktalkAsktalkThu, 20 Dec 2007 17:50:00 GMThttp://www.tkk7.com/asktalk/archive/2007/12/21/169201.htmlhttp://www.tkk7.com/asktalk/comments/169201.htmlhttp://www.tkk7.com/asktalk/archive/2007/12/21/169201.html#Feedback0http://www.tkk7.com/asktalk/comments/commentRss/169201.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/169201.html有很多朋友虽然安装好了mysql但却不知如何使用它。在q篇文章中我们就从连接MYSQL、修改密码、增加用L斚w来学习一些MYSQL的常用命令?

一、连接MYSQL?/strong>

格式Q?mysql -hL地址 -u用户?Qp用户密码

1、例1Q连接到本机上的MYSQL?

首先在打开DOSH口Q然后进入目?mysqlbinQ再键入命omysql -uroot -pQ回车后提示你输密码Q如果刚安装好MYSQLQ超U用户root是没有密码的Q故直接回R卛_q入到MYSQL中了QMYSQL的提C符是:mysql>

2、例2Q连接到q程L上的MYSQL。假设远E主机的IP为:110.110.110.110Q用户名为root,密码为abcd123。则键入以下命oQ?

mysql -h110.110.110.110 -uroot -pabcd123

Q注:u与root可以不用加空|其它也一P

3、退出MYSQL命oQ?exit Q回车)

二、修改密码?/strong>

格式Qmysqladmin -u用户?-p旧密?password 新密?

1、例1Q给root加个密码ab12。首先在DOS下进入目录mysqlbinQ然后键入以下命?

mysqladmin -uroot -password ab12

注:因ؓ开始时root没有密码Q所?p旧密码一就可以省略了?

2、例2Q再root的密码改为djg345?

mysqladmin -uroot -pab12 password djg345

三、增加新用户?br /> Q注意:和上面不同,下面的因为是MYSQL环境中的命oQ所以后面都带一个分号作为命令结束符Q?

格式Qgrant select on 数据?*  to  用户名@dL  identified by  \"密码\"

?、增加一个用户test1密码为abcQ让他可以在ML上登录,q对所有数据库有查询、插入、修攏V删除的权限。首先用以root用户q入MYSQLQ然后键入以下命令:

grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";

但例1增加的用h十分危险的,你想如某个h知道test1的密码,那么他就可以在internet上的M一台电脑上d你的mysql数据库ƈ对你的数据可以ؓ所Ʋؓ了,解决办法见例2?

?、增加一个用户test2密码为abc,让他只可以在localhost上登录,q可以对数据库mydbq行查询、插入、修攏V删除的操作Qlocalhost指本C机,即MYSQL数据库所在的那台LQ,q样用户即用知道test2的密码,他也无法从internet上直接访问数据库Q只能通过MYSQLL上的web|讉K了?

grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";

如果你不想test2有密码,可以再打一个命令将密码消掉?

grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";



在上我们讲了登录、增加用戗密码更改等问题。下我们来看看MYSQL中有x据库斚w的操作。注意:你必首先登录到MYSQL中,以下操作都是在MYSQL的提C符下进行的Q而且每个命o以分L束?

一、操作技?/strong>

1、如果你打命令时Q回车后发现忘记加分P你无重打一遍命令,只要打个分号回R可以了。也是说你可以把一个完整的命o分成几行来打Q完后用分号作结束标志就OK?

2、你可以使用光标上下键调Z前的命o。但以前我用q的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win?br />
二、显C命?/strong>

1、显C数据库列表?

show databases;

刚开始时才两个数据库Qmysql和test。mysql库很重要它里面有MYSQL的系l信息,我们改密码和新增用户Q实际上是用这个库q行操作?

2、显C库中的数据表:

use mysqlQ?/span> Q/打开库,学过FOXBASE的一定不会陌生吧

show tables;

3、显C数据表的结构:

describe 表名;

4、徏库:

create database 库名;

5、徏表:

use 库名Q?

create table 表名 (字段讑֮列表)Q?/span>

6、删库和删表:

drop database 库名;

drop table 表名Q?/span>

7、将表中记录清空Q?

delete from 表名;

8、显C中的记录Q?

select * from 表名;

从文本文件执行SQL语句

三、一个徏库和以及插入数据的实?

drop database if exists school; //如果存在SCHOOL则删?
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //l束
//以下为插入字D?
insert into teacher values('','glchengang','深圳一?,'1976-10-10');
insert into teacher values('','jack','深圳一?,'1975-12-23');

注:在徏表中Q?Q将ID设ؓ长度?的数字字D?int(3)q让它每个记录自动加一:auto_incrementq不能ؓI?not null而且让他成ؓdDprimary keyQ?Q将NAME设ؓ长度?0的字W字D(3Q将ADDRESS设ؓ长度50的字W字D,而且~省gؓ深圳。varchar和char有什么区别呢Q只有等以后的文章再说了。(4Q将YEAR设ؓ日期字段?

如果你在mysql提示W键入上面的命o也可以,但不方便调试。你可以以上命令原样写入一个文本文件中假设为school.sqlQ然后复制到c:\\下,q在DOS状态进入目录\\mysql\\binQ然后键入以下命令:

mysql -uroot -p密码 < c:\\school.sql

如果成功Q空Z行无M昄Q如有错误,会有提示。(以上命o已经调试Q你只要?/的注释去掉即可用)?br />
四、将文本数据转到数据库中

1、文本数据应W合的格式:字段数据之间用tab键隔开Qnull值用\\n来代?

例:

3 rose 深圳二中 1976-10-10

4 mike 深圳一?1975-12-23

2、数据传入命?load data local infile \"文g名\" into table 表名;

注意Q你最好将文g复制到\\mysql\\bin目录下,q且要先用use命o打表所在的库?

五、备份数据库Q(命o在DOS的\\mysql\\bin目录下执行)

mysqldump --opt school>school.bbb

注释:数据库school备䆾到school.bbb文gQschool.bbb是一个文本文Ӟ文g名Q取,打开看看你会有新发现?

后记Q其实MYSQL的对数据库的操作与其它的SQLcL据库大同异Q您最好找本将SQL的书看看。我在这里只介绍一些基本的Q其实我也就只懂q些了,呵呵。最好的MYSQL教程q是"晏子"译的"MYSQL中文参考手?不仅免费每个相关|站都有下蝲Q而且它是最权威的。可惜不是象\"PHP4中文手册\"那样是chm的格式,在查扑և数命令的时候不太方ѝ?



Asktalk 2007-12-21 01:50 发表评论
]]>
MySQL:InnoDB和MyISAM的差?/title><link>http://www.tkk7.com/asktalk/archive/2007/12/21/169200.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Thu, 20 Dec 2007 17:09:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2007/12/21/169200.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/169200.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2007/12/21/169200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/169200.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/169200.html</trackback:ping><description><![CDATA[<p>InnoDB和MyISAM是在使用MySQL最常用的两个表cdQ各有优~点Q视具体应用而定。下面是已知的两者之间的差别Q仅供参考?/p> <p><strong>innodb</strong><br /> InnoDB l?MySQL 提供了具有事?commit)、回?rollback)和崩溃修复能?crash recovery capabilities)的事务安?transaction-safe (ACID compliant))型表。InnoDB 提供了行?locking on row level)Q提供与 Oracle cd一致的不加锁读?non-locking read in SELECTs)。这些特性均提高了多用户q发操作的性能表现。在InnoDB表中不需要扩大锁?lock escalation)Q因?InnoDB 的列锁定(row level locks)适宜非常的I间。InnoDB ?MySQL 上第一个提供外键约?FOREIGN KEY constraints)的表引擎?/p> <p>InnoDB 的设计目标是处理大容量数据库pȝQ它?CPU 利用率是其它Z盘的关pL据库引擎所不能比的。在技术上QInnoDB 是一套放?MySQL 后台的完整数据库pȝQInnoDB 在主内存中徏立其专用的缓冲池用于高速缓冲数据和索引?InnoDB 把数据和索引存放在表I间里,可能包含多个文gQ这与其它的不一P举例来说Q在 MyISAM 中,表被存放在单独的文g中。InnoDB 表的大小只受限于操作pȝ的文件大,一般ؓ 2 GB?/p> <p>?http://www.innodb.com/ 上可以找?InnoDB 最新的信息。InnoDB 手册的最新版本L被放|在那里Qƈ且在那里可以得到 InnoDB 的商业许?order commercial licenses)以及支持?/p> <p>InnoDB 现在(2001q十?在一些大的需高性能的数据库站点上被使用。著名的 Internet 新闻站点 Slashdot.org 是使用?InnoDB?Mytrix, Inc. ?InnoDB 表上存储了超q?1 TB 的数据,而且另外的一个站点在 InnoDB 表上处理着q_每秒 800 ơ的插入/更新的负载?<br /> <br /> <strong> MyISAM </strong><br /> MyISAM 是MySQL~省存贮引擎 .<br /> <br /> 每张MyISAM 桌被存放在盘在三个文?。frm 文g存放表格定义?数据文g是MYD (MYData) ?索引文g是MYI (MYIndex) 引?/p> <p><strong>以下是一些细节和具体实现的差别:</strong></p> <p>1.InnoDB不支持FULLTEXTcd的烦引?br /> 2.InnoDB 中不保存表的具体行数Q也是_执行select count(*) from tableӞInnoDB要扫描一遍整个表来计有多少行,但是MyISAM只要单的d保存好的行数卛_。注意的是,当count(*)语句包含 where条gӞ两种表的操作是一L?br /> 3.对于AUTO_INCREMENTcd的字D,InnoDB中必d含只有该字段的烦引,但是在MyISAM表中Q可以和其他字段一起徏立联合烦引?br /> 4.DELETE FROM tableӞInnoDB不会重新建立表,而是一行一行的删除?br /> 5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的Q解x法是首先把InnoDB表改成MyISAM表,导入数据后再ҎInnoDB表,但是对于使用的额外的InnoDBҎ(例如外键Q的表不适用?/p> <p>另外QInnoDB表的行锁也不是绝对的Q如果在执行一个SQL语句时MySQL不能定要扫描的范围QInnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”</p> <p>M一U表都不是万能的Q只用恰当的针对业务cd来选择合适的表类型,才能最大的发挥MySQL的性能优势?/p> <p>  </p> <p> </p> <img src ="http://www.tkk7.com/asktalk/aggbug/169200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2007-12-21 01:09 <a href="http://www.tkk7.com/asktalk/archive/2007/12/21/169200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Glassfish中间件实?/title><link>http://www.tkk7.com/asktalk/archive/2007/03/25/106243.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sun, 25 Mar 2007 08:48:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2007/03/25/106243.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/106243.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2007/03/25/106243.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/106243.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/106243.html</trackback:ping><description><![CDATA[<p style="text-align: center"><span style="font-size: 12pt"></span> </p> <p><strong>1, 下蝲 </strong></p> <p>?a >https://glassfish.dev.java.net/downloads/v2-b33.html</a>选择下蝲版本,q里下蝲的是windows? </p> <p>Solaris SPARC Platform </p> <p><a >glassfish-installer-v2-b33.jar</a>, size 70M </p> <p>Solaris x86 Platform </p> <p><a >glassfish-installer-v2-b33-sunos_x86.jar</a> size 67M </p> <p>Windows Platform </p> <p><a >glassfish-installer-v2-b33-winnt.jar</a> size 63M </p> <p>Linux Platform </p> <p><a >glassfish-installer-v2-b33-linux.jar</a> size 64M </p> <p>MacOS Platform </p> <p><a >glassfish-installer-v2-b33-darwin.jar</a> size 67M </p> <p> </p> <p>2,讄Java和Ant环境变量 </p> <p>pȝ需要安装J2SE 5.0 <br /> </p> <p>3,执行安装 </p> <p>java -Xmx256m -jar glassfish-installer-v2-b33.jar </p> <p>直接点击q行glassfish-installer-v2-b33.jar无法安装,必须在cmd命o环境下执行上q命? </p> <p>执行完毕后在glassfish-installer-v2-b33.jar的同U目录会出现一个glassfish文g?所有文仉已经解压到这个目录了,<span style="color: red">记着,只是解压q没有安装哪! </span></p> <p> </p> <p>下面cd glassfish ,切换到glassfish目录?q行ant脚本setup.xml,执行真正的安装过E?<br /> q行 ant -f setup.xml </p> <p></p> <p>4,q行domain. </p> <p>大家都用qIBM Websphere 和BEA Weblogic,domain相当于服务器的一个具体实?所有配|参数都在这里面.在步?中已lؓ我们生成了一个domain,在glassfish\domains\domain1目录? </p> <p>切换到cd glassfish/bin目录?</p> <p>执行asadmin start -domain domain1 ,q行domain1.l果如下 </p> <p> </p> <p>5,览控制?</p> <p>打开览器,输入 <a >http://192.168.1.3:8080/</a> 看到如下? </p> <p> </p> <p> </p> <p>控制台首? http://192.168.1.3:4848/ <br /> user name: admin <br /> password: adminadmin </p> <p>控制台首如? </p> <p> </p> <p> </p> <img src ="http://www.tkk7.com/asktalk/aggbug/106243.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2007-03-25 16:48 <a href="http://www.tkk7.com/asktalk/archive/2007/03/25/106243.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ZSOA的架构师的定位问?/title><link>http://www.tkk7.com/asktalk/archive/2006/12/18/88616.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Mon, 18 Dec 2006 11:39:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2006/12/18/88616.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/88616.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2006/12/18/88616.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/88616.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/88616.html</trackback:ping><description><![CDATA[ <table class="sectionTable" cellspacing="0" cellpadding="0" border="0"> <tbody> <tr valign="top"> <td class="sectionTableCell"> <p> <font face="Arial">         pȝ架构设计师角色是技术上的领导和pȝ开发创新远景的来源?br />         随着现在技术的q步Q特别师银行Q电信都在搞省集中,那么集中意味q什么,数据量增大,q发增大Q特别是现在在银行,电信目中ؓ了达到^C业化Q都是在向SOA靠拢。这意味q什么?接口增多了,而且都是ZȝQ那么在q种情况下,软g的管理和规划设计和原来的都不一样了Q就需要更高的架构师?br />          q一q我一直在做电信的目Q以前一?7目Q包|万象,什么都有。所以到了今q中国电信提出^C业化Q都在向省集中靠拢,那么以前的一个项目就搞定了,现在变成?0几个厂商都在Q由于SOAq不成熟Q基于ȝQ接口非怹多,数据Q模型等都需要一个技术专家组Q也是所谓的架构师去换一U思\设计整体的架构。特别是SOA有很多没有一个很成熟的方案,所以架构是在这个时候就需要具有透视未来的能力,以后压力增大Q系l可以承受吗Q很多都需要重新思考。需要一个正规的程显的特别重要!Q下面说说理想中的架构师。应该向q方面靠拢!<br /><br />         pȝ架构设计师徏立ƈ改进pȝ逻辑l构和物理结构ƈ参与优化q些l构Q优化结构要Ҏ主要的系l元素及其接口,q要权衡各种竞争因素和约束(如,性能、h格和环境影响Q,评估生成所需行ؓ的可能方案。系l架构设计师的视野跨整个系l以及内部和外部可能影响到开发的所有因素。考虑到要l持该广阔的视野Q系l分析员很少深入地参与系l的详细工程Q而們֐于把它们留给各个工程专业的其他专业h员?</font> </p> </td> </tr> </tbody> </table> <br /> <font face="Arial"> <img height="142" alt="架构?jpg" src="http://www.tkk7.com/images/blogjava_net/asktalk/架构?jpg" width="894" border="0" /> <br /> <br /> </font> <font color="#ff3300"> <strong> <font face="Arial">pȝ架构师应具备的技能:<br /></font> </strong> <font color="#000000"> <p> <font face="Arial">pȝ架构设计师角色要求精通促成系l工E的多个规程Qƈ在分析和解决Ҏ合成斚w技术娴熟。系l架构设计师q必d于启发式和归U_推理Q大部分pȝ体系l构所依赖的)Q以及对其他工程规程的演l推理。系l架构设计师不只是地考虑解决Ҏ的技术,q考虑许多其他问题Q比如系l操作、性能、经可行性、可l护性和后勤支持Q以及有兌些问题的政治、技术、社会、胦务和环境因素Q及其他因素Q?#160; </font> </p> <p> <font face="Arial">pȝ架构设计师必L熟有l验Q其能够完成对象分析和贸易研究以从多个解决Ҏ中选择最优解x案,能够在信息不完整或不明确时作出好的判断,q能够认识到“最?#8221;通常是由政治、经以及工E考虑支配的?</font> </p> <p> <font face="Arial">在处理由人员、硬件和软gl合的系l时Q系l架构设计师需要对M解决Ҏ中由人员和硬件组件施加的物理限制和约束有很强的判断力。除了在pȝ工程斚w的经验(以及对联合规E方面的知识Q如操作调查和工E经)之外Q系l架构设计师在Y件工E(׃它在Cpȝ中普遍存在)斚w也要有坚实的基础以及以下素质Q?</font> </p> <ul> <li> <font face="Arial">在问题领域的<strong>l验</strong>和对需求的深入理解。该专业技能可以在pȝ体系l构团队中分摊?</font> </li> <li> <font face="Arial"> <strong>领导</strong>品质Q用以推动跨各团队的技术工作,在压力下制定关键决策Qƈ坚持贯彻q些决策。ؓ辑ֈ效果Q系l架构设计师和项目经理必ȝ密协作,前者领导技术事宜,后者领导管理事宜。系l架构设计师必须有权作出技术决{?</font> </li> <li> <font face="Arial"> <strong>沟?/strong>技能,以赢得信任,q行说服、激励和指导。系l架构设计师不是通过职位拥有权利Q而是因ؓ有目q的能力和成W。ؓ了达到效果,pȝ架构设计师必L挥项目团队、项目经理、顾客和用户团体Qƈ理团队?</font> </li> <li> <font face="Arial"> <strong>面向目标和主动?/strong>Q专注于成果。系l架构设计师是项目背后的技术驱动力Q而不是顾问或梦想家。对于一名成功的pȝ架构设计师而言Q其职业是在压力和许多不确定情况下作出一pdơ最佻I但通常不是<i>非常</i>ơ最佻I决策。只有那些能够专注于需做之事的人才会在q种环境中获得成功?</font> </li> </ul> <p> <font face="Arial">pȝ架构设计师角色具有系l设计h员的技能,但前者的技能重Ҏ战略性的Qƈ不详l?<br /><br /><strong>pȝ架构设计师与软g设计人员的关p?/strong></font> </p> <p> <font face="Arial">q两个角色有很多怼点;实际上对于那些因规模或复杂程度而被看作“pȝ”开发、但仍是大型的或完整的Y仉目来_q两个角色是合ؓ一体的?然而,通常情况下,pȝ架构设计师比软g设计人员的支持范围大?pȝ架构设计师必d付物理上强加的约束,q些U束在Y件更易适应的领域中不存在。但是,正是软g的灵zL得体pȝ构演q具有可能的道\Q这在以前是无法设想的。因此,软g设计人员和系l架构设计师之间q不是严格的从属关系Q从软g体系l构上考虑的反馈可能对pȝ的体pȝ构有p的媄响;否认q一点将要承担潜在的ơ最?i>pȝ</i>体系l构的风险,q些体系l构Z软g体系l构可从需求的分配Q由pȝ架构设计师完成)z到计^台这一单的概念。但是以下说法也是正的Q在pȝ架构设计师和软g设计人员的团队中Q系l架构设计师角色的职责要求系l架构设计师?i>团队中的g?/i>Q因为系l是最l品?</font> </p> </font> </font> <img src ="http://www.tkk7.com/asktalk/aggbug/88616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2006-12-18 19:39 <a href="http://www.tkk7.com/asktalk/archive/2006/12/18/88616.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ZXDoclet的Hibernate3企业U开发培训(1Q——one2one映射cd的书写要?/title><link>http://www.tkk7.com/asktalk/archive/2006/03/05/33750.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sun, 05 Mar 2006 13:27:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2006/03/05/33750.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/33750.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2006/03/05/33750.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/33750.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/33750.html</trackback:ping><description><![CDATA[     摘要: 摘要Q此为我l公司内部新员工培训的实战演CZ子,ȝU教E,讲述了开发中的注意要点和常见错误Q目的主要是让他们适应企业U快速流水作业。由于是面对面讲解,所以没有详l的文档Q现在简单整理如下,希望对入门者有帮助?<br> <br>培训的目标:对下面的开发过E和模式快速理解和应用。基于我的UML架构-----〉Java POJOs代码------〉在pojos中做xdoclet标识-------〉基于ant生成*.hbm.xml文gQ借助于eclipse可以自动化配|)------〉生成database schma和数据库sql语句。逐步可以让新员工q渡到java5的annotation来开发EJB3 . <br>  <a href='http://www.tkk7.com/asktalk/archive/2006/03/05/33750.html'>阅读全文</a><img src ="http://www.tkk7.com/asktalk/aggbug/33750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2006-03-05 21:27 <a href="http://www.tkk7.com/asktalk/archive/2006/03/05/33750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java语法探究——从多层内部c?嵌套的类中访问外部类的成?/title><link>http://www.tkk7.com/asktalk/archive/2006/02/19/31535.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sun, 19 Feb 2006 11:24:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2006/02/19/31535.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/31535.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2006/02/19/31535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/31535.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/31535.html</trackback:ping><description><![CDATA[<H5 style="MARGIN: 14pt 0cm 14.5pt"><FONT size=5><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">从多层内部类</SPAN><SPAN lang=EN-US style="mso-font-kerning: 0pt"><FONT face=宋体>/</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">嵌套的类中访问外部类的成?/SPAN><SPAN lang=EN-US style="mso-font-kerning: 0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></H5> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本文用到名词说明</SPAN><SPAN lang=EN-US><FONT face=宋体>:<o:p></o:p></FONT></SPAN></STRONG></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-weight: bold">内部c:</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-WEIGHT: normal; mso-bidi-font-weight: bold"><FONT face=宋体>Inner Class<o:p></o:p></FONT></SPAN></STRONG></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-weight: bold">嵌套c:</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-weight: bold">Static Nested Class </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-weight: bold; mso-bidi-font-family: Arial">Q与标题上的嵌套的类不同Q此处是专有名词Q?/SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-weight: bold"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">静态内部类Q同嵌套cM个意思,一物两个名字而已?/SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN lang=EN-US style="FONT-WEIGHT: normal; mso-bidi-font-weight: bold"><o:p><FONT face=宋体> </FONT></o:p></SPAN></STRONG></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在下面,我们看到对于</SPAN><FONT face=宋体><SPAN lang=EN-US>B</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">cL说他的嵌套层ơ是Q?/SPAN></FONT><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">AcessMethod-</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A-</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B </SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">Q?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">那么讉KҎ如下Q?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt"><CODE><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #7f0055">class </SPAN></B></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B {</SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white">      </SPAN><B><SPAN style="COLOR: #7f0055">void </SPAN></B><SPAN style="COLOR: black">h() {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">        </SPAN><SPAN style="COLOR: black">System.out.println(</SPAN><SPAN style="COLOR: #2a00ff">"h()"</SPAN><SPAN style="COLOR: black">);</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">        </SPAN><SPAN style="COLOR: black">g();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">        </SPAN><SPAN style="COLOR: black">f();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">      </SPAN><SPAN style="COLOR: black">}<o:p></o:p></SPAN></CODE></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt"><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">AcessMethod</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">来说对Q都是透明的,直接调用?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">嵌套cd例化的顺序:有外到里Q?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">AcessMethod-</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A-</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B<o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">调用代码如下Q?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: white">    </SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">AcessMethod am = </SPAN></CODE><CODE><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #7f0055">new </SPAN></B></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">AcessMethod();</SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">AcessMethod.A a = am.</SPAN><B><SPAN style="COLOR: #7f0055">new </SPAN></B><SPAN style="COLOR: black">A();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">AcessMethod.A.B b = a.</SPAN><B><SPAN style="COLOR: #7f0055">new </SPAN></B><SPAN style="COLOR: black">B();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">b.h();<o:p></o:p></SPAN></CODE></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt"><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">q里很有意思的一点,</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">?new?/SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">语法产生了正的作用域?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt"><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p> </o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt"><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">疑问Q?/SPAN></STRONG><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">下面我们来看一下在</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B.h()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">中怎样调用</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1.g()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">ҎQ?/SPAN></CODE><CODE><B><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-ansi-font-size: 10.5pt"><o:p></o:p></SPAN></B></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p> </o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">下面我们来看是否可以?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">中调?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1.g()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">ҎQ在</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B.h()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">Ҏ中原则上可以q样调用</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1.g()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">但是</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">没有实例化,所以这h错误的,也就是在</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">中无法调?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">中的非静态方法了?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN lang=EN-US><o:p><FONT face=宋体> </FONT></o:p></SPAN></STRONG></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">假设Q?/SPAN></STRONG><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">如果</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1.g()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">static</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">cdQ那么在</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">B</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">中可以这栯?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">U的ҎQ?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1.this.g()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">Q?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black"><o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><B><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-ansi-font-size: 10.5pt"><o:p> </o:p></SPAN></B></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">但是q是不可能的Q因为在</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">A1.g()</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">不可能定义ؓ</SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">static</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">cdQ详l看下面的问?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">1</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">Q?/SPAN></CODE><STRONG><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-weight: bold">问题</SPAN></STRONG><FONT face=宋体><STRONG><SPAN lang=EN-US style="FONT-WEIGHT: normal; mso-bidi-font-weight: bold">1:</SPAN></STRONG><STRONG><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-weight: bold">在什么情况下可以定义</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-WEIGHT: normal; mso-bidi-font-weight: bold">static </SPAN></STRONG><STRONG><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-weight: bold">ҎQ,q是一个缺点吧Q但是可以用嵌套类来解决了?/SPAN></STRONG></FONT><B><SPAN lang=EN-US><o:p></o:p></SPAN></B></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #3f5fbf">/**</SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white"> </SPAN><SPAN style="COLOR: #3f5fbf">* </SPAN></CODE></SPAN><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: #3f5fbf; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">从多层嵌套类中访问外部类的成?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #3f5fbf">.<SPAN style="mso-spacerun: yes">  </SPAN></SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: #3f5fbf; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #3f5fbf">.new</SPAN></CODE><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: #3f5fbf; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">“语法生了正确的作用域</SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white"> </SPAN><SPAN style="COLOR: #3f5fbf">*/</SPAN></CODE><BR><CODE><B><SPAN style="COLOR: #7f0055">public class </SPAN></B><SPAN style="COLOR: black">AcessMethod {</SPAN></CODE><BR><BR><CODE><SPAN style="COLOR: white">  </SPAN><B><SPAN style="COLOR: #7f0055">private void </SPAN></B><SPAN style="COLOR: black">f() {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">System.out.println(</SPAN><SPAN style="COLOR: #2a00ff">"f()"</SPAN><SPAN style="COLOR: black">);</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">  </SPAN><SPAN style="COLOR: black">}<o:p></o:p></SPAN></CODE></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white">  </SPAN><B><SPAN style="COLOR: #7f0055">class </SPAN></B><SPAN style="COLOR: black">A1 {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><B><SPAN style="COLOR: #7f0055">private void </SPAN></B><SPAN style="COLOR: black">g() {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">      </SPAN><SPAN style="COLOR: black">System.out.println(</SPAN><SPAN style="COLOR: #2a00ff">"A<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:chmetcnv UnitName="g" SourceValue="1" HasSpace="False" Negative="False" NumberType="1" TCSC="0" w:st="on">1 </st1:chmetcnv>- g()"</SPAN><SPAN style="COLOR: black">);</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">}<o:p></o:p></SPAN></CODE></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 15pt; mso-char-indent-count: 1.5"><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">}<o:p></o:p></SPAN></CODE></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 15pt; mso-char-indent-count: 1.5"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white">  </SPAN><B><SPAN style="COLOR: #7f0055">class </SPAN></B><SPAN style="COLOR: black">A {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><B><SPAN style="COLOR: #7f0055">private void </SPAN></B><SPAN style="COLOR: black">g() {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">      </SPAN><SPAN style="COLOR: black">System.out.println(</SPAN><SPAN style="COLOR: #2a00ff">"g()"</SPAN><SPAN style="COLOR: black">);</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">}</SPAN></CODE><BR><BR><CODE><SPAN style="COLOR: white">    </SPAN><B><SPAN style="COLOR: #7f0055">class </SPAN></B><SPAN style="COLOR: black">B {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">      </SPAN><B><SPAN style="COLOR: #7f0055">void </SPAN></B><SPAN style="COLOR: black">h() {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">        </SPAN><SPAN style="COLOR: black">System.out.println(</SPAN><SPAN style="COLOR: #2a00ff">"h()"</SPAN><SPAN style="COLOR: black">);</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">        </SPAN><SPAN style="COLOR: black">g();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">        </SPAN><SPAN style="COLOR: black">f();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">      </SPAN><SPAN style="COLOR: black">}</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">}</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">  </SPAN><SPAN style="COLOR: black">}</SPAN></CODE><BR><BR><CODE><SPAN style="COLOR: white">  </SPAN><B><SPAN style="COLOR: #7f0055">public static void </SPAN></B><SPAN style="COLOR: black">main(String[] args) {</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">AcessMethod am = </SPAN><B><SPAN style="COLOR: #7f0055">new </SPAN></B><SPAN style="COLOR: black">AcessMethod();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">AcessMethod.A a = am.</SPAN><B><SPAN style="COLOR: #7f0055">new </SPAN></B><SPAN style="COLOR: black">A();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">AcessMethod.A.B b = a.</SPAN><B><SPAN style="COLOR: #7f0055">new </SPAN></B><SPAN style="COLOR: black">B();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: black">b.h();</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">  </SPAN><SPAN style="COLOR: black">}</SPAN></CODE><BR><CODE><SPAN style="COLOR: black">}<o:p></o:p></SPAN></CODE></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">q行l果Q?/SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt; mso-highlight: white">h()</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 50pt; TEXT-ALIGN: left; mso-char-indent-count: 5.0; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt; mso-highlight: white">g()</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 50pt; mso-char-indent-count: 5.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt; mso-highlight: white">f()</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 50pt; mso-char-indent-count: 5.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><o:p> </o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">问题</SPAN><SPAN lang=EN-US><FONT face=宋体>1:</FONT></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在什么情况下可以定义</SPAN><SPAN lang=EN-US><FONT face=宋体>static </FONT></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ</SPAN></STRONG><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q?/SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></B></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p><FONT face=宋体> </FONT></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只有在顶层类中定义,或者在静态内部类中定义,看下面的例子</SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><CODE><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #7f0055">public class </SPAN></B></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">Test {</SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white">  </SPAN><B><SPAN style="COLOR: #7f0055">static void </SPAN></B><SPAN style="COLOR: black">t(){}</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">  </SPAN><B><SPAN style="COLOR: #7f0055">class </SPAN></B><SPAN style="COLOR: black">T2{</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: #3f7f5f">//!</SPAN></CODE></SPAN><CODE><SPAN style="FONT-SIZE: 10pt; COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">错误Q?/SPAN></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #3f7f5f">The method a cannot be declared static; </SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: #3f7f5f">//static methods can only be declared in a static or top level type</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">    </SPAN><SPAN style="COLOR: #3f7f5f">//static void a(){}</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">  </SPAN><SPAN style="COLOR: black">}<o:p></o:p></SPAN></CODE></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10.05pt; mso-char-indent-count: 1.0"><CODE><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #7f0055">static</SPAN></B></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: white"> </SPAN></CODE><CODE><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #7f0055">class </SPAN></B></CODE><CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black">T3{</SPAN></CODE><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><BR><CODE><SPAN style="COLOR: white">        </SPAN><B><SPAN style="COLOR: #7f0055">static void</SPAN></B><SPAN style="COLOR: #3f7f5f"> </SPAN><SPAN style="COLOR: black">a(){}</SPAN></CODE><BR><CODE><SPAN style="COLOR: white">  </SPAN><SPAN style="COLOR: black">}</SPAN></CODE><BR><CODE><SPAN style="COLOR: black">}</SPAN></CODE></SPAN></P><img src ="http://www.tkk7.com/asktalk/aggbug/31535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2006-02-19 19:24 <a href="http://www.tkk7.com/asktalk/archive/2006/02/19/31535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Thinking in java W四版来了先Mؓ快!Q可以下载)http://www.tkk7.com/asktalk/archive/2006/02/17/31145.htmlAsktalkAsktalkFri, 17 Feb 2006 02:20:00 GMThttp://www.tkk7.com/asktalk/archive/2006/02/17/31145.htmlhttp://www.tkk7.com/asktalk/comments/31145.htmlhttp://www.tkk7.com/asktalk/archive/2006/02/17/31145.html#Feedback11http://www.tkk7.com/asktalk/comments/commentRss/31145.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/31145.html
... I wish I had this book when I started programming. I recommend this book to every student as well as beginner and intermediate Java programmer. This book would also serve as a guide to those who would wish to write the Sun Certified Java Programmer (SCJP) certification exam. It also introduces design patterns and testing which is really good since we see programmers writing 100’s of lines of code with no  阅读全文

Asktalk 2006-02-17 10:20 发表评论
]]>
以一个装饰模式来看IBM RSA与Together2006(附UML?http://www.tkk7.com/asktalk/archive/2006/02/14/30718.htmlAsktalkAsktalkTue, 14 Feb 2006 15:41:00 GMThttp://www.tkk7.com/asktalk/archive/2006/02/14/30718.htmlhttp://www.tkk7.com/asktalk/comments/30718.htmlhttp://www.tkk7.com/asktalk/archive/2006/02/14/30718.html#Feedback5http://www.tkk7.com/asktalk/comments/commentRss/30718.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/30718.html下面是一个发打印系l,其中
SalesOrder是发的MQ也是中间的数据部?BR>HeaderDecorator,HeaderDecorator1是头部分样式Q?BR>FooterDecorator,FooterDecorator2是尾部分样式Q?BR>OrderLine是主体中的单列数据;

printinvoice.gif

对IBM RSA与Together2006的比较:
IBM RSAQ?BR>1Q比较易用,外观漂亮Q可以很方便调整颜色Q?BR>2Q运行速度比较快,相比?nbsp;   Together2006Q?BR>3Q智能化技术非怽Q在反向工程中最明显Q?BR>4Q不支持Java5.0技术;

Together2006Q上图Together2006实现Q:
1Q智能化技术非帔RQ没发现出现低错误Q在反向工程中最明显Q?BR>2Q支持Java5.0技术;
3Q运行速度慢,有时候让人难以接受;

先写到这Q有旉接着写。。?BR>              


Asktalk 2006-02-14 23:41 发表评论
]]>
行FrameWork整合之SpringBB—?IoC反向控制?/title><link>http://www.tkk7.com/asktalk/archive/2006/02/14/30623.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Tue, 14 Feb 2006 07:48:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2006/02/14/30623.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/30623.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2006/02/14/30623.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/30623.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/30623.html</trackback:ping><description><![CDATA[     摘要: J2EE开发正在变得越来越复杂QJ2EE已经发展Z个API、复杂化的编E和配置的复杂网l。这几年Q新的框架和Ҏ不断涌现从一定程度上~解了开发的复杂和降低了开发的成本Q但是要把这些Framework整合hQ如Struts,JSF,Webwork,Hibernate,JDO{等Qƈ不是那么ҎQ就目前来看q个职位只有Spring能够胜QQ采用的是IoC技术。那么反向控制到底什么?  <a href='http://www.tkk7.com/asktalk/archive/2006/02/14/30623.html'>阅读全文</a><img src ="http://www.tkk7.com/asktalk/aggbug/30623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2006-02-14 15:48 <a href="http://www.tkk7.com/asktalk/archive/2006/02/14/30623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Sourceforge.net 开源网站被?Q?/title><link>http://www.tkk7.com/asktalk/archive/2006/01/19/28710.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Thu, 19 Jan 2006 15:50:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2006/01/19/28710.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/28710.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2006/01/19/28710.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/28710.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/28710.html</trackback:ping><description><![CDATA[著名的开源站Ҏ法访问,打听了不同地方的朋友Q好像都不能讉KQ听朋友说被了Q是不是真的了?BR>不明白ؓ什么?2002q前好像一直被,后来开放了Q但是现在又无法讉KQ大家试一下,自己?BR>能访问吗Q?BR><BR>开源的权威站点啊,hibernate,spring ,{等都来自哪里啊Q!<img src ="http://www.tkk7.com/asktalk/aggbug/28710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2006-01-19 23:50 <a href="http://www.tkk7.com/asktalk/archive/2006/01/19/28710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate深入研究3-1http://www.tkk7.com/asktalk/archive/2006/01/18/28548.htmlAsktalkAsktalkWed, 18 Jan 2006 10:26:00 GMThttp://www.tkk7.com/asktalk/archive/2006/01/18/28548.htmlhttp://www.tkk7.com/asktalk/comments/28548.htmlhttp://www.tkk7.com/asktalk/archive/2006/01/18/28548.html#Feedback2http://www.tkk7.com/asktalk/comments/commentRss/28548.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/28548.html  阅读全文

Asktalk 2006-01-18 18:26 发表评论
]]>
JCL(Jakarta Commons Logging)应用开发小l?/title><link>http://www.tkk7.com/asktalk/archive/2005/08/18/10387.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Wed, 17 Aug 2005 17:18:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2005/08/18/10387.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/10387.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2005/08/18/10387.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/10387.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/10387.html</trackback:ping><description><![CDATA[     摘要: JCL(Jakarta Commons Logging)和log4j不都是做log的吗Q怎么在jcl的源码包中,q有个log4j的包Q倒底怎么回事Q看了jcl的用h南,明白了? 1、Commons-Loggin?   Jakarta Commons Logging (JCL)提供的是一个日?Log)接口(interface)Q同时兼轻量和不依赖于具体的日志实现工具?它提供给中间?日志工具开发者一个简单的日志操作抽象Q允许程序开发h员用不同的具体日志实现工具。用戯假定已熟悉某U日志实现工L更高U别的细节。JCL提供的接口,对其它一些日志工P包括Log4J, Avalon LogKit, and JDK 1.4{,q行了简单的包装Q此接口更接q于Log4J和LogKit的实?   <a href='http://www.tkk7.com/asktalk/archive/2005/08/18/10387.html'>阅读全文</a><img src ="http://www.tkk7.com/asktalk/aggbug/10387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2005-08-18 01:18 <a href="http://www.tkk7.com/asktalk/archive/2005/08/18/10387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate3之One-to-one关系映射http://www.tkk7.com/asktalk/archive/2005/08/18/10384.htmlAsktalkAsktalkWed, 17 Aug 2005 16:26:00 GMThttp://www.tkk7.com/asktalk/archive/2005/08/18/10384.htmlhttp://www.tkk7.com/asktalk/comments/10384.htmlhttp://www.tkk7.com/asktalk/archive/2005/08/18/10384.html#Feedback0http://www.tkk7.com/asktalk/comments/commentRss/10384.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/10384.html阅读全文

Asktalk 2005-08-18 00:26 发表评论
]]>
CVS团队开发:Window2003?/title><link>http://www.tkk7.com/asktalk/archive/2005/08/14/10059.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sat, 13 Aug 2005 23:14:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2005/08/14/10059.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/10059.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2005/08/14/10059.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/10059.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/10059.html</trackback:ping><description><![CDATA[     摘要: CVS团队开发:Window2003版用?nbsp; <a href='http://www.tkk7.com/asktalk/archive/2005/08/14/10059.html'>阅读全文</a><img src ="http://www.tkk7.com/asktalk/aggbug/10059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2005-08-14 07:14 <a href="http://www.tkk7.com/asktalk/archive/2005/08/14/10059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用xdoclet开发hibernate3的ant通用代码http://www.tkk7.com/asktalk/archive/2005/07/30/8784.htmlAsktalkAsktalkSat, 30 Jul 2005 08:31:00 GMThttp://www.tkk7.com/asktalk/archive/2005/07/30/8784.htmlhttp://www.tkk7.com/asktalk/comments/8784.htmlhttp://www.tkk7.com/asktalk/archive/2005/07/30/8784.html#Feedback1http://www.tkk7.com/asktalk/comments/commentRss/8784.htmlhttp://www.tkk7.com/asktalk/services/trackbacks/8784.html不用多说了,已经注释很详l了Q希望对你有帮助  阅读全文

Asktalk 2005-07-30 16:31 发表评论
]]>
J2EE安全{略Qؓtomcat面讄讉K权限Qj_security_checkQ?/title><link>http://www.tkk7.com/asktalk/archive/2005/07/23/8221.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Fri, 22 Jul 2005 20:12:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2005/07/23/8221.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/8221.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2005/07/23/8221.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/8221.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/8221.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><FONT face=Arial><B><SPAN style="COLOR: #05006c; LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial">?SPAN lang=EN-US>tomcat</SPAN>面讄讉K权限<BR></SPAN></B><SPAN lang=EN-US style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><FONT face=Arial>CSDN|址Q?/FONT><A ><FONT face=Arial>http://blog.csdn.net/fasttalk</FONT></A><BR><FONT face=Arial>刚从CSDN搬到q里Q先发表一!<BR>?SPAN lang=EN-US>web</SPAN>应用中,寚w面的讉K控制通常通过E序来控Ӟ程为:</FONT><SPAN lang=EN-US><BR></SPAN><FONT face=Arial>d<SPAN lang=EN-US> -> </SPAN>讄<SPAN lang=EN-US>session -> </SPAN>讉K受限面时检?SPAN lang=EN-US>session</SPAN>是否存在Q如果不存在Q禁止访?SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><FONT face=Arial>对于较小型的<SPAN lang=EN-US>web</SPAN>应用Q可以通过<SPAN lang=EN-US>tomcat</SPAN>内置的访问控制机制来实现权限控制。采用这U机制的好处是,E序中无需q行权限控制Q完全通过?SPAN lang=EN-US>tomcat</SPAN>的配|即可完成访问控制?SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><FONT face=Arial>Z?SPAN lang=EN-US>tomcat</SPAN>面讄讉K权限控制Q在目?SPAN lang=EN-US>WEB-INFO/web.xml</SPAN>文g中,q行如下讄Q?SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; WORD-BREAK: break-all; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><TEXTAREA style="WIDTH: 669px; HEIGHT: 358px" rows=22 cols=79><web-app> <!--servlet{其他配|?-> <security-constraint> <web-resource-collection> <display-name>Example Security Constraint</display-name> <web-resource-name>My Test</web-resource-name> <url-pattern>/ddly/admin/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>role1</role-name> <role-name>tomcat</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>My Test</realm-name> </login-config> </web-app> </TEXTAREA><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><FONT face=Arial>其中Q?SPAN lang=EN-US><url-pattern></SPAN>中指定受限的<SPAN lang=EN-US>url</SPAN>Q可以用通配W?SPAN lang=EN-US>*</SPAN>Q通常Ҏ个目录进行访问权限控制?/FONT><SPAN lang=EN-US><BR><FONT face=Arial><auth-constraint></FONT></SPAN><FONT face=Arial>中指定哪些角色可以访?SPAN lang=EN-US><url-pattern></SPAN>指定?SPAN lang=EN-US>url</SPAN>Q在<SPAN lang=EN-US><role-name></SPAN>中可以设|一个或多个角色名?SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><FONT face=Arial>使用的角色名来自<SPAN lang=EN-US>tomcat</SPAN>的配|文?SPAN lang=EN-US>${CATALINA_HOME}/conf/tomcat-users.xml</SPAN>?SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><FONT face=Arial><SPAN lang=EN-US style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><login-config></SPAN><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">中设|登录方式,<SPAN lang=EN-US><auth-method></SPAN>的取gؓ<SPAN lang=EN-US>BASIC</SPAN>?SPAN lang=EN-US>FORM</SPAN>。如果ؓ<SPAN lang=EN-US>BASIC</SPAN>Q浏览器在需要登录时弹出一个登录窗口。如果ؓ<SPAN lang=EN-US>FORM</SPAN>方式Q需要指定登录页面和dp|时的提示信息昄面?SPAN lang=EN-US> <o:p></o:p></SPAN></SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><FONT face=Arial>使用<SPAN lang=EN-US>FORM</SPAN>方式的配|样例如下:<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; WORD-BREAK: break-all; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><TEXTAREA style="WIDTH: 667px; HEIGHT: 134px" rows=8 cols=79><login-config> <auth-method>FORM</auth-method> <realm-name>Example Form-Based Authentication Area</realm-name> <form-login-config> <form-login-page>/login.jsp</form-login-page> <form-error-page>/error.jsp</form-error-page> </form-login-config> </login-config> </TEXTAREA><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 9pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><FONT face=Arial>其中?SPAN lang=EN-US><form-login-page></SPAN>指定d面<SPAN lang=EN-US>url</SPAN>Q?SPAN lang=EN-US><form-error-page></SPAN>指定dp|时的提示面<SPAN lang=EN-US>url</SPAN>?/FONT><SPAN lang=EN-US><BR></SPAN><FONT face=Arial>d面中,<SPAN lang=EN-US>form</SPAN>?SPAN lang=EN-US>action</SPAN>Q以及其中的用户名和密码两个参数的名Uͼ都应取固定的倹{登录的后台处理E序?SPAN lang=EN-US>j_security_check</SPAN>Q用户名和密码的参数名称分别为:<SPAN lang=EN-US>j_username</SPAN>?SPAN lang=EN-US>j_password</SPAN>?/FONT><SPAN lang=EN-US><BR></SPAN><FONT face=Arial>如下是登录页面(如:<SPAN lang=EN-US>login.jsp</SPAN>Q的一D늤例代码:<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><TEXTAREA style="WIDTH: 668px; HEIGHT: 294px" rows=18 cols=79><form method="POST" action='<%= response.encodeURL("j_security_check") %>' > <table border="0" cellspacing="5"> <tr> <th align="right">Username:</th> <td align="left"><input type="text" name="j_username"></td> </tr> <tr> <th align="right">Password:</th> <td align="left"><input type="password" name="j_password"></td> </tr> <tr> <td align="right"><input type="submit" value="Log In"></td> <td align="left"><input type="reset"></td> </tr> </table> </form> </TEXTAREA></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 新宋? mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P> <P><FONT face=Arial></FONT> </P> <img src ="http://www.tkk7.com/asktalk/aggbug/8221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2005-07-23 04:12 <a href="http://www.tkk7.com/asktalk/archive/2005/07/23/8221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>很高_我的blog从csdn转移到这里了Q?/title><link>http://www.tkk7.com/asktalk/archive/2005/05/20/4978.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Fri, 20 May 2005 02:51:00 GMT</pubDate><guid>http://www.tkk7.com/asktalk/archive/2005/05/20/4978.html</guid><wfw:comment>http://www.tkk7.com/asktalk/comments/4978.html</wfw:comment><comments>http://www.tkk7.com/asktalk/archive/2005/05/20/4978.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/asktalk/comments/commentRss/4978.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/asktalk/services/trackbacks/4978.html</trackback:ping><description><![CDATA[׃csdn的blog太不E_Q让我伤透了心,现在有找C一个新Ӟ我非帔R_希望与大家交java技术?img src ="http://www.tkk7.com/asktalk/aggbug/4978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/asktalk/" target="_blank">Asktalk</a> 2005-05-20 10:51 <a href="http://www.tkk7.com/asktalk/archive/2005/05/20/4978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://ddm88888.com" target="_blank">ۺɫͼƬ</a>| <a href="http://lfhotline.com" target="_blank">ƷѾƷ߹ۿ</a>| <a href="http://51comcomcom.com" target="_blank">wŷs</a>| <a href="http://91ttvv.com" target="_blank">޾ƷҹӰ</a>| <a href="http://cpsc-test.com" target="_blank">ŷһëƬ </a>| <a href="http://njchxf.com" target="_blank">2021ƷƵѲ</a>| <a href="http://0730jxpm.com" target="_blank">Ѽվһҳ</a>| <a href="http://nb46.com" target="_blank">Ʒ߲ҳ </a>| <a href="http://hengzekang.com" target="_blank">ػһһƬ </a>| <a href="http://992fanli.com" target="_blank">ëƬѹۿ</a>| <a href="http://shlamore.com" target="_blank">ëƬ벥</a>| <a href="http://jiuse54.com" target="_blank">ѹۿ</a>| <a href="http://badabg.com" target="_blank">ŮоƷվѹۿ</a>| <a href="http://lyaa17.com" target="_blank">޾Ʒٸ30P</a>| <a href="http://am33318.com" target="_blank">һ</a>| <a href="http://jmdehong.com" target="_blank">337pձŷ޴ɫ</a>| <a href="http://www66susu.com" target="_blank">޹Ʒһߵ</a>| <a href="http://am3736.com" target="_blank">þü޾Ʒ?V</a>| <a href="http://tskes.com" target="_blank">߹ۿ㶮</a>| <a href="http://13813855.com" target="_blank">ѹۿƵ</a>| <a href="http://65123456.com" target="_blank">õ788Ƶ </a>| <a href="http://zmnhssn.com" target="_blank">ձ</a>| <a href="http://wxxwy.com" target="_blank">Ƶ߹ۿվ</a>| <a href="http://31xyz.com" target="_blank">ձ߹ۿ</a>| <a href="http://hdznzdh.com" target="_blank">avһ</a>| <a href="http://xdxdl.com" target="_blank">avƷҹɫҹ</a>| <a href="http://wwwayx2026.com" target="_blank">ŷ޾ƷAV</a>| <a href="http://takiku.com" target="_blank">輤һ</a>| <a href="http://8mav938.com" target="_blank">aƬƷþþþþþ</a>| <a href="http://tttui.com" target="_blank">þþƷƷް</a>| <a href="http://s88s88.com" target="_blank">ѳҹƵ</a>| <a href="http://13813855.com" target="_blank">ѹۿƷ</a>| <a href="http://295301.com" target="_blank">רһvavר</a>| <a href="http://muguangmi.com" target="_blank">ִӲˬƵ</a>| <a href="http://wwwabxx.com" target="_blank">Ļѹۿ</a>| <a href="http://5916733.com" target="_blank">AV˳ۺ</a>| <a href="http://56ms.com" target="_blank">һA</a>| <a href="http://www-63228.com" target="_blank">ۺݾ</a>| <a href="http://chowngroup.com" target="_blank">AVƬ߹ۿ</a>| <a href="http://langya2255.com" target="_blank">޾ƷŮþþþ99</a>| <a href="http://xianfeng-motor.com" target="_blank">һ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>