ALL is Well!

          敏捷是一條很長(zhǎng)的路,摸索著前進(jìn)著

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            30 隨筆 :: 23 文章 :: 71 評(píng)論 :: 0 Trackbacks

          2010年9月4日 #

               摘要: 快速排序的算法思想:
          快速排序采用了分治的策略,將原問題分解為若干個(gè)規(guī)模更小但結(jié)構(gòu)與原問題相似的子問題。用遞歸方法解決子問題,然后將這些子問題的解組合為原問題的解。
            閱讀全文
          posted @ 2011-04-09 17:37 李 明 閱讀(2069) | 評(píng)論 (1)編輯 收藏

               摘要: 在項(xiàng)目中實(shí)現(xiàn)了一個(gè)工具(獨(dú)立運(yùn)行的Java工程,打成jar包后 通過 java -jar **.jar 執(zhí)行的。),該工具通過配置能夠?qū)崿F(xiàn)一些業(yè)務(wù)功能,
          并且該工具提供了接口與抽象類,供其他人擴(kuò)展它的功能。

          這就涉及到一個(gè)問題:別人在擴(kuò)展它的時(shí)候,需要引入一些jar或者配置文件,本來(lái)工具依賴的jar和配置文件都記錄在manifest文件中了,
          不可能別人加了jar包和配置文件就要修改manifest文件的。
          所以我為工具提供了另外一個(gè)入口,通過 該通過的配置文件 進(jìn)行配置 路徑,由于考慮到擴(kuò)展的人可能多人或者多組,所以配置文件如下定義:
          以ext_classpath開頭的,諸如 ext_classpath_biz1等對(duì)應(yīng)的路徑均被加入到classpath中。
          以ext_resourcepath開頭的,諸如 ext_resourcepath_biz1等對(duì)應(yīng)的路徑均被加入classpath中。  閱讀全文
          posted @ 2011-04-01 20:39 李 明 閱讀(13704) | 評(píng)論 (1)編輯 收藏

          posted @ 2011-03-30 13:07 李 明 閱讀(730) | 評(píng)論 (0)編輯 收藏

          posted @ 2011-03-17 11:17 李 明 閱讀(2825) | 評(píng)論 (0)編輯 收藏

               摘要: 問題:
          freemarker在解析數(shù)據(jù)格式的時(shí)候,默認(rèn)將數(shù)字按3位來(lái)分割,例如1000被格式化為1,000,這樣做看似美觀,但在實(shí)際操作時(shí)候會(huì)帶來(lái)問題。例如我一個(gè)頁(yè)面有一個(gè)元素,該元素的值由后臺(tái)綁定且超過1000,那么當(dāng)我要使用這個(gè)元素的值的時(shí)候,便會(huì)出現(xiàn)問題。  閱讀全文
          posted @ 2010-12-29 14:54 李 明 閱讀(5831) | 評(píng)論 (6)編輯 收藏

               摘要: 總體上來(lái)說,jMock 是一個(gè)輕量級(jí)的模擬對(duì)象技術(shù)的實(shí)現(xiàn)。它具有以下特點(diǎn):
          1.可以用簡(jiǎn)單易行的方法定義模擬對(duì)象,無(wú)需破壞本來(lái)的代碼結(jié)構(gòu)表;
          2.可以定義對(duì)象之間的交互,從而增強(qiáng)測(cè)試的穩(wěn)定性;
          3.可以集成到測(cè)試框架;
          4.易擴(kuò)充;
            閱讀全文
          posted @ 2010-12-17 09:28 李 明 閱讀(12085) | 評(píng)論 (3)編輯 收藏

               摘要: 淺談TDD
          JUnit4的用法介紹
          測(cè)試方法 @Test
          @Before(SetUp)
          @After(TearDown)
          @Before和@After小結(jié)
          @BeforeClass和@AfterClass
          測(cè)試異常@Test(expected=XXXException.class)
          參數(shù)化測(cè)試
            閱讀全文
          posted @ 2010-12-15 15:34 李 明 閱讀(13217) | 評(píng)論 (1)編輯 收藏

               摘要: 本次分頁(yè)組件著重于頁(yè)面(Freemarker部分)、及Action部分。
          至于Service及持久層處理,只是做了一個(gè)模擬的實(shí)現(xiàn),實(shí)際開發(fā)中,我是應(yīng)用了iBatis,封裝了分頁(yè)調(diào)用。
          由于用法有所不同,所以就不放在源碼范圍內(nèi),也不在這里介紹了。
          這里的分頁(yè)功能只提供了 上一頁(yè)、下一頁(yè)、指定頁(yè) 的分頁(yè),但在分頁(yè)Java代碼中包含了 首頁(yè)、末頁(yè)的實(shí)現(xiàn)。有需要的可自行添加。


          分頁(yè)的效果如圖:  閱讀全文
          posted @ 2010-12-01 17:35 李 明 閱讀(5866) | 評(píng)論 (4)編輯 收藏

               摘要: struts2 的Result type chain:基本用途是構(gòu)造成一條動(dòng)作鏈。前一個(gè)Action將控制權(quán)轉(zhuǎn)交給后一個(gè)Action,而前一個(gè)Action的狀態(tài)在后一個(gè)Action里仍然保持著。
          但這種數(shù)據(jù)傳遞前提是數(shù)據(jù)要在Value stack里。
          本文介紹基于Struts2 Result type 為 chian時(shí), 通過增加攔截器、注解的方式,實(shí)現(xiàn)Action之間的數(shù)據(jù)傳遞。所傳遞的數(shù)據(jù)可以不在Value stack里。
          實(shí)現(xiàn)的基本思路是Result type為chain時(shí),在準(zhǔn)備執(zhí)行當(dāng)前Action時(shí),可以得到上一個(gè)Action對(duì)象的實(shí)例,上一個(gè)Action的實(shí)例被加入到了ValueStack中...
            閱讀全文
          posted @ 2010-11-19 17:25 李 明 閱讀(5332) | 評(píng)論 (2)編輯 收藏

               摘要: 默認(rèn)情況下,freemarker的變量必須有值,如果沒有被賦值的變量在頁(yè)面上使用就會(huì)拋出異常,出錯(cuò)的信息都會(huì)顯示在頁(yè)面上,讓人感覺不爽(開發(fā)時(shí)還可以忍忍)。
          以下介紹四種解決辦法。  閱讀全文
          posted @ 2010-11-17 13:54 李 明 閱讀(2331) | 評(píng)論 (0)編輯 收藏

               摘要: 統(tǒng)一處理系統(tǒng)中的異常并將其以固定的格式顯示在頁(yè)面上。

          當(dāng)使用js做前臺(tái)的表單驗(yàn)證的時(shí)候,提示用戶的輸入有問題,則可以使用 Message.showMsg('...'),提示信息也會(huì)顯示在同一個(gè)位置。

          這樣就實(shí)現(xiàn)了異常提示信息的統(tǒng)一展示了。

          這是一個(gè)比較簡(jiǎn)易的實(shí)現(xiàn),只提供一個(gè)思路。  閱讀全文
          posted @ 2010-11-16 14:53 李 明 閱讀(2800) | 評(píng)論 (0)編輯 收藏

               摘要: 在上一篇 Hessian構(gòu)建分布式系統(tǒng)應(yīng)用 的基礎(chǔ)上,我們對(duì)程序進(jìn)行改進(jìn)。
          現(xiàn)在有以下比較突出的問題:
          a.如果hessian服務(wù)端我要做的業(yè)務(wù)很多,怎么辦?
          我要定義很多個(gè)接口,然后再寫實(shí)現(xiàn)類,最煩的是還要配置它。
          我的設(shè)想是,hessian服務(wù)只提供一個(gè)歸口,再此對(duì)外的接口實(shí)現(xiàn)中反射調(diào)用具體的業(yè)務(wù)類。

          b.客戶端在調(diào)用時(shí),每次調(diào)用遠(yuǎn)程接口都要用以下代碼嗎:  閱讀全文
          posted @ 2010-10-17 22:10 李 明 閱讀(1704) | 評(píng)論 (1)編輯 收藏

               摘要: Hessian是一個(gè)輕量級(jí)的remoting onhttp工具,使用簡(jiǎn)單的方法提供了RMI的功能. 相比WebService,Hessian更簡(jiǎn)單、快捷。
          采用的是二進(jìn)制RPC協(xié)議,因?yàn)椴捎玫氖嵌M(jìn)制協(xié)議,所以它很適合于發(fā)送二進(jìn)制數(shù)據(jù)。

          本文將分為以下幾個(gè)內(nèi)容:
          一、一個(gè)簡(jiǎn)單的Hessian調(diào)用例子
          二、Spring+Hessian的例子
          三、使我們的調(diào)用變得通用

          第一?%  閱讀全文
          posted @ 2010-10-17 21:11 李 明 閱讀(2824) | 評(píng)論 (0)編輯 收藏

               摘要: 通過上一篇 利用自定義Java注解實(shí)現(xiàn)資源注入 介紹的方法,我們實(shí)現(xiàn)了通過自定義注解完成了對(duì)DataSource資源的注入,但在實(shí)際應(yīng)用中,我們通常不希望去顯式的去聲明這樣的MyAnnotationBeanProcessor對(duì)象來(lái)幫助我們完成注入,而是希望通過Spring幫我們“悄悄地”完成。  閱讀全文
          posted @ 2010-10-04 10:31 李 明 閱讀(8240) | 評(píng)論 (1)編輯 收藏

               摘要: 這里是想介紹一下如何通過Java的注解機(jī)制,實(shí)現(xiàn)對(duì)bean資源的自動(dòng)注入。主要介紹實(shí)現(xiàn)方法,至于例子的實(shí)用性不必討論。
          需求:一個(gè)應(yīng)用有兩個(gè)數(shù)據(jù)庫(kù),分別為DB-A,DB-B。
          假設(shè)持久層框架使用iBatis來(lái)完成,那么SqlMapClient對(duì)象在創(chuàng)建時(shí),對(duì)于兩個(gè)不同的DB連接要有兩個(gè)不同的SqlMapClient對(duì)象,
          假設(shè)我們有一個(gè)Service類為MyService.java,該類中有兩個(gè)SqlMapClient對(duì)象分別對(duì)應(yīng)著DB-A、DB-B。  閱讀全文
          posted @ 2010-10-04 10:19 李 明 閱讀(5350) | 評(píng)論 (0)編輯 收藏

               摘要: 繼上一篇 擴(kuò)展Spring-實(shí)現(xiàn)對(duì)外部引用的屬性文件的 屬性值 進(jìn)行加密、解密 ,這次要實(shí)現(xiàn)的是對(duì)整個(gè)外部屬性文件進(jìn)行加密,Spring在加載這個(gè)外部屬性文件時(shí)進(jìn)行解密。
          分析過程與在 擴(kuò)展Spring-實(shí)現(xiàn)對(duì)外部引用的屬性文件的 屬性值 進(jìn)行加密、解密 中介紹的基本一致,只不過這次的入口就在 PropertiesLoaderSupport.java 這個(gè)抽象類的loadProperties方法。代碼片段:(注意注釋部分)  閱讀全文
          posted @ 2010-10-02 12:44 李 明 閱讀(4378) | 評(píng)論 (8)編輯 收藏

               摘要: 當(dāng)我們?cè)谑褂肧pring進(jìn)行開發(fā)時(shí),我們經(jīng)常使用占位符引用屬性文件的屬性值來(lái)簡(jiǎn)化我們的配置及使我們的配置具有更高的靈活性和通用性。
          使用這種方式的好處這里就不贅述了,這里要講的是怎樣對(duì)此外部屬性文件的屬性值進(jìn)行加密、解密。  閱讀全文
          posted @ 2010-09-30 14:34 李 明 閱讀(2744) | 評(píng)論 (0)編輯 收藏

               摘要: 此程序需要ganymed-ssh2-build210.jar包。
          下載地址:http://www.ganymed.ethz.ch/ssh2/
          為了調(diào)試方便,可以將\ganymed-ssh2-build210\src下的代碼直接拷貝到我們的工程里,
          此源碼的好處就是沒有依賴很多其他的包,拷貝過來(lái)干干凈凈。

          此程序的目的是執(zhí)行遠(yuǎn)程機(jī)器上的Shell腳本。  閱讀全文
          posted @ 2010-09-26 13:03 李 明 閱讀(13610) | 評(píng)論 (7)編輯 收藏

               摘要: 一個(gè)Java應(yīng)用程序的日志里,出現(xiàn)了很不和諧的記錄:
          java.io.IOException: Too many open files

          在網(wǎng)上查了一些關(guān)于此異常的解決方案,基本上都是說要擴(kuò)大linux系統(tǒng)的文件句柄數(shù)限制。
          但如果程序?qū)τ赟ocket、Stream等使用后沒能及時(shí)關(guān)閉的話,擴(kuò)大這個(gè)文件句柄數(shù)限制是治標(biāo)不治本的。

            閱讀全文
          posted @ 2010-09-14 19:36 李 明 閱讀(11127) | 評(píng)論 (2)編輯 收藏

               摘要: 他山之石可以攻玉。
          Spring為我們提供了一個(gè)PropertyPlaceholderConfigurer,它能夠使Bean在配置時(shí)引用外部屬性文件。
          可以將BeanFactory定義中的一些屬性值放到另一個(gè)單獨(dú)的標(biāo)準(zhǔn)Java Properties文件中。
          我們?cè)诓渴饝?yīng)用時(shí)只需要在屬性文件中對(duì)一些屬性進(jìn)行修改,而不用對(duì)主XML定義文件或容器所用文件進(jìn)行復(fù)雜和危險(xiǎn)的修改。
          讓我們看看下面的例子:  閱讀全文
          posted @ 2010-09-13 15:44 李 明 閱讀(4917) | 評(píng)論 (2)編輯 收藏

               摘要:
          LINUX常用命令(基礎(chǔ))

          1. man 對(duì)你熟悉或不熟悉的命令提供幫助解釋

          eg:man ls 就可以查看ls相關(guān)的用法

          注:按q鍵或者ctrl+c退出,在linux下可以使用ctrl+c終止當(dāng)前程序運(yùn)行。

            閱讀全文
          posted @ 2010-09-13 10:09 李 明 閱讀(326) | 評(píng)論 (0)編輯 收藏

               摘要: cglib版本為cglib-nodep-2.2.jar.
          本次只為演示在使用中出現(xiàn)的Java內(nèi)存泄漏的問題,以及如何解決這樣的問題。
          cglib的應(yīng)用是非常多的,但是當(dāng)我們使用它的時(shí)候,如果一不小心,等出了問題再去查,就比較杯具了。所以好的解決方案就是寫代碼時(shí)就注意這些細(xì)節(jié)。
          近期項(xiàng)目在做壓力測(cè)試,就暴露了內(nèi)存泄漏的Bug,cglib的使用不當(dāng),就是原因之一。  閱讀全文
          posted @ 2010-09-09 17:00 李 明 閱讀(3674) | 評(píng)論 (1)編輯 收藏

               摘要: Quartz版本為1.8.3
          Spring版本為2.5

          自定義作業(yè)表 QRTZ_JOB。
          其中定義 作業(yè)標(biāo)識(shí)、作業(yè)名稱、類名、觸發(fā)器名稱、觸發(fā)器腳本等。
          下面看看在Spring中如何配置Quartz。
            閱讀全文
          posted @ 2010-09-06 19:08 李 明 閱讀(2470) | 評(píng)論 (0)編輯 收藏

               摘要: 接上一篇Maven2 學(xué)習(xí)筆記[5]-構(gòu)建一個(gè)Java Application項(xiàng)目。
          一個(gè)一個(gè)來(lái)處理不符合我們需求的地方。

          1.問題:在QrtzPrj.jar的同一目錄下并沒有l(wèi)ib文件夾,也沒有依賴的jar包。
          這個(gè)問題的解決辦法便是引入Maven的maven-dependency-plugin插件。
          內(nèi)容如下:(配置在 ... 中)  閱讀全文
          posted @ 2010-09-04 11:37 李 明 閱讀(1766) | 評(píng)論 (0)編輯 收藏

               摘要: 這個(gè) Java App 項(xiàng)目,包含的東西還是蠻多的。
          在我構(gòu)建這個(gè)項(xiàng)目的過程中遇到了很多問題,讓我著實(shí)的痛苦了一天,在這一天中,我在網(wǎng)上看到很多構(gòu)建類似項(xiàng)目的文章,但寫的都不是很詳細(xì)。至少不能滿足我的需求。
          對(duì)于像我這樣,需要在1天內(nèi)就要搞定打包的人來(lái)講,這確實(shí)很失望。
          所以我要把我構(gòu)建這個(gè)項(xiàng)目的過程,記錄下來(lái),希望能對(duì) 與我有類似需求的人 有一些幫助。
          里面的一些配置也許不夠完美,還請(qǐng)指正。謝謝。  閱讀全文
          posted @ 2010-09-04 10:48 李 明 閱讀(765) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 台中市| 五指山市| 阳西县| 宁津县| 介休市| 吴江市| 桃源县| 隆德县| 景洪市| 凤山县| 水富县| 芦溪县| 青浦区| 彰化市| 长岛县| 恭城| 孝昌县| 新平| 罗源县| 西吉县| 汪清县| 中牟县| 西林县| 右玉县| 徐州市| 大英县| 色达县| 合阳县| 峨山| 永登县| 正定县| 襄城县| 崇义县| 翁源县| 石门县| 微山县| 诸暨市| 宁化县| 东明县| 博野县| 错那县|