『壹』 用java語言, 如何實現為圖片添加邊框素材,就是把圖片和邊框素材(圖片)結合
用FrontPage2002來做吧,你點點下面的連接:
具體是:
Web頁面可用預定義模板來創建,也可不採用模板而在空白頁上自己進行設計。創建新頁面的步驟如下:
在網頁視圖下,選擇「文件」菜單中的「新建」命令,再從其子菜單中選擇「網頁」命令,將彈出「新建」對話框,如圖所示。
若用戶要新建的網頁是框架,則從「框架網頁」選項卡中選擇某種框架樣式;否則,從「常規」選項卡中選擇一種所需樣式,然後單擊「確定」按鈕。若想建立一空白網頁,可在對話框的「常規」選項卡中選擇Normal Page項,或直接單擊常用工具欄的「新建網頁」按鈕。
建議逐一試用FrontPage提供的各種模板以便熟悉它們,日後你就可以自如地利用模板創建常規Web頁面,能夠節省許多時間。
1.在網頁中插入圖形
圖片往往比大量的文字講述更具吸引力和說服力,在web頁面中適當地添加圖片會使網頁豐富多彩,但過多地加入圖片將降低頁面的下載速度,特別是對通過數據機訪問web頁的用戶。大多數圖形都是採用壓縮格式,有的數據機不具有壓縮功能,這種數據機速度更慢。因此用戶在加入圖片時,應認真選擇和進行規劃。雖然圖形可使web頁更有趣味,但應適度使用(使用較少顏色,縮小高度和寬度或裁剪圖形、降低圖形的解析度,盡可能地減少圖形文件大小,如用壓縮格式的文件類型)。
Web頁面所使用的兩種圖片格式分別為GIF和JPEG,用戶可選擇「插入」菜單中的「圖片」命令,再從其子菜單中選擇「來自文件」命令,打開「圖片」對話框,「圖片」對話框提供了「掃描」、「使用您的web例覽器來選擇網頁或文件」、「剪貼畫」和「在您的計算機上選擇一個文件」四種途徑插入圖片。
對於一些非GIF和JPEC格式的圖片,FrontPage可以自動地將這些文件轉換成GIF或JPEG格式。
2.在網頁中插入水平線
水平線可以在網頁上清晰地劃分界限,而且對用戶網頁的布局起著重要的作用。添加一條水平線,可以通過「插入」菜單中選擇「水平線」命令添加。在默認狀態下水平線是灰色的,用戶可以像改變文本顏色一樣改變水平線的顏色。改變水平線的顏色有兩種方法(必須在不加主題的情況下):
(1)雙擊該水平線,將顯示「水平線屬性」對話框。在對話框的「顏色」項,選擇下拉列表,從中選擇合適的顏色,單擊「確定」按鈕。
(2)用滑鼠右鍵單擊這條水平線,從快捷菜單中選擇「水平線屬性」命令,再從對話框中選擇一個合適的顏色。
使用框架
--------------------------------------------------------------------------------
框架是把Web瀏覽器的視窗分成幾個部分,每個部分都是獨立的Web頁面,這樣便可同時顯示多個頁面。
可以很容易地用FrontPage創建一個多框架的web頁面。為了創建具有框架的Web頁面,可從「文件」菜單的「新建」子菜單中選擇「網頁」命令,彈出「新建」對話框,選擇「框架網頁」選項卡。
在左邊的列表中可選擇不同類型的框架模板,選定模板後,按「確定」按鈕即可創建一個具有框架的網頁。
在創建有框架的Web頁面時,應注意有些web瀏覽器不支持框架。雖然使用不能顯示框架的瀏覽器的用戶已很少,為確保這些用戶仍然能夠瀏覽到Web站點上的內容,可以填上要告訴那些低版本瀏覽器的使用者的話,例如請對方更換瀏覽器等。
在新建的框架的窗口中,單擊「設置初始頁」按鈕將會彈出「創建超鏈接」對話框,可以鏈接到一個指定頁面;單擊「新建網頁」按鈕將創建一個新頁面,然後在該頁面內對該頁進行編輯。在編輯頁面時,若感覺頁面被放在一個狹窄的框架中太擁擠,可選擇「框架」菜單中的「在新窗口中打開網頁」命令,這樣便打開一個新的滿屏窗口,可以自由地在頁面中增加內容。
利用FrontPage的框架頁面模板在Web頁面上引入了框架布局,我們還可以在此基礎上,根據需要進行進一步的設計。
1、增加新框架
要給框架頁面增加新框架,就是像拆分表格的單元格一樣,把一個框架分為兩個框架。 其操作如下:
(1)按住Ctrl鍵,將滑鼠放在框架邊框上,當滑鼠變為上下箭頭時,可把邊框拖到一個新位置,當松開滑鼠按鈕時,一個新的空白內容的框架就形成了。
(2)也可以通過命令來操作:首先單擊要拆分的框架內部,選「框架」菜單中的「拆分框架」命令,在彈出的「拆分框架」對話框中單擊「拆分成列」或「拆分成行」單選按鈕,單擊「確定」按鈕即可。
2.刪除框架
若框架頁面看起來太亂,可刪除某些框架。要刪除一個框架,可先單擊該框架選擇它,再選擇「框架」菜單中的「刪除框架」命令即可。
3.改變框架屬性
在設置好框架的整體布局後,我們還可以對每一框架的具體屬性進行設置,操作如下:
(1)單擊需設置屬性的框架,選擇「框架」菜單中的「框架屬性」,則彈出「框架屬性」對活框。
(2)在對話框的「名稱」文本框中可輸入框架名,這樣便於識別不同的框架;在「選項」區域中,若選中「在例覽器中可以調大小」復選框,則客戶在瀏覽站點時,可重新定義框架尺寸,通過在「顯示滾動條」下拉列表框中選擇不同的描述項,可設置讓滾動條是否出現。
(3)在「框架大小」區域中,可設置框架大小,可以定義一個絕對像素值或相對於瀏覽器窗口的百分比,若要用瀏覽器來設置相對於該頁面中框架的尺寸,可選「相對」;在「邊距」區域中,可設置內容頁面與框架邊框分隔的像素數值。
(4)要改變開始頁面,可以在「初始網頁」文本框中輸入一個新的頁面名字或URL。
(5)單擊「框架網頁」按鈕,則彈出「網頁屬性」對話框。
(6)在該對話框的「框架」選項卡中,在「框架間距」文本框中,可輸入以像素為單位的邊框寬度;若要使框架邊框消失,則不要選中「顯示邊框」復選框。
(7)單擊「確定」按鈕,關閉「網頁屬性」對話框,再單擊「確定」按鈕,關閉「框架屬件」對話框,完成框架屬性設置。
動態網頁
--------------------------------------------------------------------------------
DHTML是動態網頁的意思,它其實並不是一個標準的術語。事實上沒有一種技術叫作DHTML。DHTML是利用CSS(層疊樣式表),JavaScript,HTML等技術而建立的能與訪問者產生互動的網頁。比如在動態網頁里,當訪問者單擊了某一張圖片後,這張圖片會自動的移動,這就是DHTML效果。也就是說,當網頁下載完畢後,它無需再與伺服器連接就能產生變化了。FrontPage2000提供了一套容易製作動態網頁的方法,你可以建立起屬於自己特色的動態網頁。
1、使用DHTML的基本步驟
1).在頁面點選需要使用DHTML的對象,比如文本,圖片。對於文本需要拖曳滑鼠選定;
2).在DHTML工具欄,選擇通過開啟的下拉列表選擇一種事件,文本和圖片所具有的事件是不同的;接下來再應用下拉列表選擇一種效果;最後選擇該效果的的實現方法;
3).當你為對象使用了DHTML後,保存該頁面並預覽,你會發現你選定的對象按照你設置的DHTML的效果出現;
4).如果想刪除某一個對象的DHTML效果,先選定該對象,然後單擊DHTML工具欄上的刪除效果圖標即可。
2、DHTML的事件
在DHTML製作中,我們聽得最多的是「事件」這個術語。什麼是「事件」呢,顧名思義,就是發生的一件事情,比如你用手打開門,那麼這就是一個事件。換到網頁製作中,開門變成了單擊,也就是說,訪問者單擊了一個鏈接,那麼出現了事件的結果,門被打開了。
在FrontPage2000中,當我們打開DHTML效果工具欄後,點選文本或者圖片會產生不同事件。但它們的施用方法是一樣的,下面我們以文本舉例:
我們先在編輯器里輸入一段文本,比如:網頁陶吧,然後繼續下面的三個步驟:
選定一段需要產生DHTML效果的文本,這里是:網頁陶吧。從DHTML效果工具欄的開啟下拉列表選擇一個事件。這里對於文本我們只有「網頁載入」這個事件。「網頁載入」就是當網頁第一次裝入的時侯發生的事件,它不需要用戶利用滑鼠去觸發它,而只需要訪問者利用瀏覽器打開它的時侯就會產生預設的動態效果。
選擇好事件後,我們要在應用下拉列表裡選擇一個該事件的應用效果。在該列表下有七種可以採用的效果,我們選擇飛入。
對於應用效果會有不同的方法產生。比如當你選擇的應用效果是「飛入」的時侯,文本可以從底部飛入,可以從左邊飛入,也可以從右邊飛入,這些就是方法。在這個下拉列表裡並沒有註明這個術語。有的應用效果是沒有方法的,比如波動。我們這里選擇從底部飛入。
最後保存該頁面並預覽,你會發現網頁陶吧這個四個字在網頁第一次載入後從底部飛入。當然,你也可以嘗試其它DHTML效果。對於選定圖片,你會在DHTML效果工具欄的開啟下拉列表看到新的事件,單擊和滑鼠懸停,它們會有各自的應用效果和實現方法。你可以每一個嘗試一下,這樣你就能明白這些事件和應用效果和方法之間的關系。
3、DHTML的小技巧
DHTML兼容性
利用FrontPage2000製作的DHTML網頁只能被InternetExplorer4.0或以上版本完全正常瀏覽。對於圖片的DHTML效果,Netscape Communicator 4.0或以上版本也可以瀏覽。
禁止DHTML
如果想禁用DHTML效果,點選菜單工具/網頁選項,在打開的對話框里選擇兼容性標簽,取消動態HTML前的復選框里勾,這樣DHTM效果被禁用。
快速使用DHTML
一般情況,在你沒有選定某一個對象的情況下,你只需要把滑鼠移動到對象的左邊或者右邊單擊一下就可以使用DHTML效果了。
4、網頁過渡
網頁過渡是指當你進入或者離開一個網頁的時侯所產生的效果的這個過程。比如你從某一頁進入另一頁,你會發現當前頁慢慢向中間合攏,同時出現了另一個新的頁面,直到當前頁合攏消失而最後出現新的頁面。如果你想使用網頁過渡,可以按照以下步驟:
1).打開想使用過渡效果的頁面,或者新建立一個頁面。點選菜單格式/網頁過渡,打開網頁過渡對話框;
2).在事件下拉列表裡選擇一個事件,我們選擇進入網頁。大家要注意,當你為某頁和站點都設置了過渡效果時,網頁將比站點過渡效果優先;
3).在周期文本框里輸入持續的時間,然後在過渡效果列表框里點選一個效果,單擊確定。利用瀏覽器打開該頁面,因為我們選擇的網頁過渡是進入網頁,所以當你打開該頁時你就能看到過渡效果了。
利用DHTML效果的確是吸引訪問者的有力利器,但如果你不願意和復雜的代碼打交道,那麼FrontPage2000為你預設了許多DHTML的效果。你要做的僅僅是選定需要動態效果的對象,比如文字,圖片,然後利用「傻瓜」式的操作就可以讓你的網頁動起來。
Web頁有自己的一組屬性,通過選擇「文件」菜單中的「屬性」或通過滑鼠右鍵單擊頁內任何位置,選擇快捷菜單中的「網頁屬性」命令,可以打開「網頁屬性」對話框,在「常規」選項卡中,各項設置含義如下:
·位置:指出頁的完整URL。
·標題:顯示的頁標題,即在HIML中顯示在<head>元素中的<tit1e>標簽內。
·基位置:在此位置可輸入一個URL,可將這頁中使用的相對URL的超鏈接總指向同一正確的目標,通過對一個URL的說明,可以在不移動相對URL中所有目標的情況下,移動這個頁。
·默認的目標框架:定義不規定框架的頁中所有超鏈接的默認框架。
·背景音樂:加入背景音樂,當瀏覽器打開該頁時,會同時播放音樂。
在其它選項卡中還可對頁邊距、語言等系統參數進行設置。
建立超鏈接
--------------------------------------------------------------------------------
超鏈接(HyperLink)的出現使網上瀏覽變得更加便捷,只須用滑鼠輕輕點擊,便能輕松地從一個頁面跳轉到另一個頁面,從一個Web站點跳到另一個Web站點,從一個國家跳到另一個國家。超鏈接就是一些特殊的文本或圖像,是其它頁面的入口。
1.與當前web站點的頁面建立超鏈接
(1)在FrontPage中打開要建立超鏈接的頁面(若是新建頁面,則要肯定該頁面己被保存),選中超鏈接源,超鏈接源可以是一個字元、一個單詞、一句話或一幅圖片等。
(2)選擇「插入」菜單中的「超鏈接」命令,或單擊「常用」工具欄的「超鏈接」按鈕,則彈出「創建超鏈接」對話框(如圖),在該對話框中列出了當前FrontPage中打開的Web站點中的文件夾和文件。
(3)在該對話框的文件列表中,選擇要建立鏈接的目標文件。
(4)單擊「確定」按鈕,超鏈接建成。
2.與本機中的其它文件建立超鍵接
(1)選擇超鏈接源,打開「創建超鏈接」對話框。
(2)在該對話框中單擊「製作一個鏈接到您計算機上文件的超鏈接」按鈕,然後從彈出的對話框中找到自己所要鏈接的文件,選中它。
(3)單擊「確定」按鈕,超鏈接建成。
3.與world wide web上某一站點建立超鏈接
(1)在FrontPage中打開欲建超鏈接的頁面,選定超鏈接源。
(2)選「插入」菜單中的「超鏈接」或單擊常用工具欄的「超鏈接」按鈕,彈出「創建超鏈接」對話框。
(3)在「URL」文本框中,輸入超鏈接目標的URL。
(4)單擊「確定」按鈕。
格式化文本
--------------------------------------------------------------------------------
1.輸入文本
從總體而言,文本仍是網頁中的主體內容,在FrontPage中輸入文本與在Word中輸入文本非常類似。
(1).需要加入空行或換段時才使用Enter鍵,當輸入文本達到所定義的右邊界時,將自動換行。若錄入文字有錯可按Backspace鍵清除錯誤,重新錄入。
(2).可在文本中任意位置處插入新文本內容,操作時把滑鼠指針定位到欲加文本處即可添加文本。
(3).可進行覆蓋式錄入,即先用滑鼠選中要替換的文本,然後直接錄入文本。
(4).可通過單擊常用工具欄的「顯示所有」按鈕,讓段落標記在屏幕上顯示或隱藏,藉助段落標記可清楚地看到段與段之間的空行。
2.文本的選擇
(1).選擇一個單詞或多個單詞:選擇一個單詞只需在該單詞上雙擊滑鼠即可,按住滑鼠左鍵在要選單詞上拖動即可選擇多個單詞。選擇字與選擇多個單詞的方法相同。
(2).選擇一行文字:一行文字就是在屏幕上占據一行空間的文本。將滑鼠箭頭移到行的最左邊,當游標箭頭變為指向左邊時,單擊滑鼠左鍵,便可選擇該行。
(3).選擇一個段落:將滑鼠箭頭移到該段落的最左邊,當游標箭頭變為指向左邊時,雙擊滑鼠左鍵,或按下ALT鍵,再用滑鼠單擊想要選擇的段落,即可選擇該段落。
3.刪除、拷貝和移動文本或圖片
(1).刪除:刪除插入點左側的一個字元,按Backspace鍵;刪除插入點右側的一個字元,按Delete鍵;刪除插入點右側的一個單詞,按Ctrl+De1ete鍵;剪切所選內容並保行到「剪貼板」,按Ctrl+X鍵;刪除所選內容按De1e1e鍵或選擇「編輯」菜單中的「刪除」命令。
(2).拷貝:拷貝所選文本或圖形到剪貼板,方法是:選中文本或圖形,然後按Ctrl+C鍵或從菜單上選擇「編輯」菜單中的「復制」菜單命令,也可直接單擊工具欄中的「復制」按鈕。
(3).移動文本或圖片:選擇想要移動的文本或圖片,再拖曳到要插入的位置,釋放滑鼠,所選對象就移到目的地。如果先將選擇的文本或圖片「剪切」,然後再「粘貼」到指定區域,也可將其移動。
(4).通過「撤銷」取消誤操作:如果用戶在不小心的情況下錯誤地執行操作,單擊工具欄上的「撤銷」命令按鈕,可以取消用戶執行過的操作,或從菜單欄選擇「編輯」菜單中的「撤銷」菜單命令,或按Cir1+Z鍵。
4.加入標題
出於頁面內容層次的需要,有時在頁面中要加入一些小標題。 HTML語言規范採用6級標題,各級標題採用文字不同字型大小來區分,其中標題1為大標題,其它依次為中小標題。要設定某一級標題,可以在FrontPage格式工具欄中的「樣式」下拉列表中選中一個標題等級,然後在游標處輸入標題文字即可;或者先輸入文字,並選定該文字,然後在「樣式」下拉列表中選定某一級標題。標題結束後,將下拉列表中的格式改回原來的「普通」,再進行其它內容的輸入。
5.改變字體及設置字體效果
FrontPage在通常情況下,字體為「Times New Roman」。若用戶的操作系統是中文Windows95/98或Windows NT,中文默認字體為「宋體」,文字大小採用默認的字型大小。若要設定不同的字體,可先選擇要改變的文字,然後在格式工具欄里的「字體」下拉菜單中選擇一種字體,或從菜單欄選擇「格式」菜單中的「字體」菜單命令,通過「字體」對話框來設置,並可設定字體樣式、大小等。當字體改變後,形式將一直保持,直到用戶又重新設置新的字體為止。
(1).設置字體顏色:選中文字,單擊格式工具欄上的「文本顏色」按鈕的下拉箭頭,就會彈出其下拉列表,在「標准顏色」中選擇所需顏色;若沒有,可選擇「更多的顏色」命令,然後從彈出的對話框中選擇。
(2).設置字體樣式:要對需要的文字進行粗體、斜體和下劃線處理,只要選擇要處理的文字,從格式工具欄上單擊「加粗」、「斜體」或「下劃線」按鈕即可。想解除此效果,可以選中文字,再次按相應的按鈕就可以解除效果,恢復到正常字體。在製作網頁時,一般不採用「下劃線」效果,因為下劃線在一些網頁中都表示有超鏈接。
(3).字體加線效果:共有兩種:「下劃線」可以在選中的文字下面劃一條線;「刪除線」在文字中間貫穿劃一條線。
(4).特殊的文字風格:當選中的文字需要使用某些特殊風格,如「閃爍」風格,可通過選擇「字體」對話框中「字體」選項卡(如圖)的「效果」區域的所需選項,但有的文字特殊效果只有在瀏覽器中才能體現出來。
6.文本的縮進
文本的縮進就是使文本左邊、右邊顯示空白,這種效果有利於對關鍵段落加強說明。要對一個已有的段落運用縮進的方式,首先選中段落,然後在格式工具欄上單擊「增加縮進」按鈕,段落左邊和右邊分別縮進一段距離,連續按「增加縮進」按鈕,縮進將進一步加大。這種在文字兩邊同時縮進的方式也稱之為雙向縮進。若縮進的空間太大,可以通過單擊「減少縮進」按鈕來減少縮進的空間。
7.文本對齊方式
若輸入的文字是從該頁的左邊距開始,並逐漸向右延伸,且到了行滿以後又折回下行左邊(左邊距處)重新開始,這就是左對齊。有些文字需要居中方式,比如標題之類的文字;而有些文字需要放到右邊,這些可通過格式工具欄上的「向左對齊」、「居中」和「向右對齊」按鈕來實現:,不同的對齊方式可以使文本呈現不同的顯示樣式,而且可以清楚地表明用戶想要說明的問題,使網頁整體保持協調。 要設定文本的居中、左齊或右齊方式,須先選擇好要設置的文本,再單擊相應按鈕即可。如果用戶想回到原始狀態的對齊的方式,應先選定該文本,再單擊格式工具欄上相應的對齊按鈕。
8、加入項目符號或列表編號
有一些列表前面有加圓點的符號,說明一條條的列表內容,這在專業排版中稱為項目符號,在Web頁面中加入項目符號或列表編號可使內容有條理、更清楚,可以通過列表把大量內容簡要地描述出來,便於讀者抓住重點。還有另外一種形式即列表編號,可以用來描述一個問題的處理步驟和順序,這兩種處理形式在FrontPage中運用起來很方便。
加入項目符號或列表編號與在Word中的操作很類似。先選定文本,用戶可以在格式工具欄按相應的按鈕,或選「格式」菜單中的「項目符號和編號方式」命令,打開項目符號和編號方式對話框(如圖),從中選定不同格式的列表項目。
在FrontPage中新建的兩個文本行之間都有一個空行,如果用戶在輸入或添加項目時不想每兩行之間都出現一個空行,可以在格式工具欄上單擊「項目符號」或「編號方式」按鈕。該按鈕為下凹狀後同時出現第一個項目符號,輸入需要的文字後,按「回車」鍵,然後在自動出現的下一個項目符號後繼續輸入。
FrontPage還可以通過提供列表編號或項目符號的方式對列表項進行排列。操作方法與上一段所述相同。
如果在所有項目輸入完畢後,以下的內容不再希望添加編號或項目符號,可兩次回車,則停止編號或停止添加項目符號。若想改變編號的形式或不想從1開始,可通過在列表符號上單擊滑鼠右鍵,在彈出的快捷菜單上選擇「列表屬性」命令,在彈出的「列表屬性」對話框中選擇「號碼」選項卡,選擇所需的編號風格,再在右邊的「初始號碼」微調器中調整起始編號,在調好之後單擊「確定」按鈕即可。
『貳』 java 目前市面上比較火的框架有哪些
Java 始終排在第一位,這使它成為有史以來最著名的軟體編程語言之一。及時的更新和新版本發布使它成為一種充滿活力的、有競爭力的編程語言。
2020年最常用的java框架
十大常用框架:
一、SpringMVC
二、Spring
三、Mybatis
四、Dubbo
五、Maven
六、RabbitMQ
七、Log4j
八、Ehcache
九、Redis
十、Shiro
一、SpringMVC
Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC也是要簡化我們日常Web開發的。
模型(Model )封裝了應用程序的數據和一般他們會組成的POJO。
視圖(View)是負責呈現模型數據和一般它生成的HTML輸出,客戶端的瀏覽器能夠解釋。
控制器(Controller )負責處理用戶的請求,並建立適當的模型,並把它傳遞給視圖渲染。
Spring的web模型 - 視圖 - 控制器(MVC)框架是圍繞著處理所有的HTTP請求和響應的DispatcherServlet的設計。
Spring Web MVC處理請求的流程
具體執行步驟如下:
1、 首先用戶發送請求————>前端控制器,前端控制器根據請求信息(如URL)來決定選擇哪一個頁面控制器進行處理並把請求委託給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;
2、 頁面控制器接收到請求後,進行功能處理,首先需要收集和綁定請求參數到一個對象,這個對象在Spring Web MVC中叫命令對象,並進行驗證,然後將命令對象委託給業務對象進行處理;處理完畢後返回一個ModelAndView(模型數據和邏輯視圖名);圖2-1中的3、4、5步驟;
3、 前端控制器收回控制權,然後根據返回的邏輯視圖名,選擇相應的視圖進行渲染,並把模型數據傳入以便視圖渲染;圖2-1中的步驟6、7;
4、 前端控制器再次收回控制權,將響應返回給用戶,圖2-1中的步驟8;至此整個結束。
二、Spring
2.1、IOC容器:
IOC容器就是具有依賴注入功能的容器,IOC容器負責實例化、定位、配置應用程序中的對象及建立這些對象間的依賴。應用程序無需直接在代碼中new相關的對象,應用程序由IOC容器進行組裝。在Spring中BeanFactory是IOC容器的實際代表者。
2.2、AOP:
簡單地說,就是將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便於減少系統的重復代碼,降低模塊間的耦合度,並有利於未來的可操作性和可維護性。AOP代表的是一個橫向的關系
AOP用來封裝橫切關注點,具體可以在下面的場景中使用:
Authentication 許可權
Caching 緩存
Context passing 內容傳遞
Error handling 錯誤處理
Lazy loading懶載入
Debugging 調試
logging, tracing, profiling and monitoring記錄跟蹤優化校準
Performance optimization性能優化
Persistence 持久化
Resource pooling資源池
Synchronization同步
Transactions 事務
三、Mybatis
MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或註解用於配置和原始映射,將介面和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。
總體流程:
(1)載入配置並初始化
觸發條件:載入配置文件
將SQL的配置信息載入成為一個個MappedStatement對象(包括了傳入參數映射配置、執行的SQL語句、結果映射配置),存儲在內存中。
(2)接收調用請求
觸發條件:調用Mybatis提供的API
傳入參數:為SQL的ID和傳入參數對象
處理過程:將請求傳遞給下層的請求處理層進行處理。
(3)處理操作請求
觸發條件:API介面層傳遞請求過來
傳入參數:為SQL的ID和傳入參數對象
處理過程:
(A)根據SQL的ID查找對應的MappedStatement對象。
(B)根據傳入參數對象解析MappedStatement對象,得到最終要執行的SQL和執行傳入參數。
©獲取資料庫連接,根據得到的最終SQL語句和執行傳入參數到資料庫執行,並得到執行結果。
(D)根據MappedStatement對象中的結果映射配置對得到的執行結果進行轉換處理,並得到最終的處理結果。
(E)釋放連接資源。
(4)返回處理結果將最終的處理結果返回
MyBatis 最強大的特性之一就是它的動態語句功能。如果您以前有使用JDBC或者類似框架的經歷,您就會明白把SQL語句條件連接在一起是多麼的痛苦,要確保不能忘記空格或者不要在columns列後面省略一個逗號等。動態語句能夠完全解決掉這些痛苦。
四、Dubbo
Dubbo是一個分布式服務框架,致力於提供高性能和透明化的RPC(遠程過程調用協議)遠程服務調用方案,以及SOA服務治理方案。簡單的說,bbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有bbo這樣的分布式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分布式框架。
1、透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
2、軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。
3、 服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。
節點角色說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務注冊與發現的注冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。
五、Maven
Maven這個個項目管理和構建自動化工具,越來越多的開發人員使用它來管理項目中的jar包。但是對於我們程序員來說,我們最關心的是它的項目構建功能。
六、RabbitMQ
消息隊列一般是在項目中,將一些無需即時返回且耗時的操作提取出來,進行了非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高了系統的吞吐量。
RabbitMQ是用Erlang實現的一個高並發高可靠AMQP消息隊列伺服器。
Erlang是一門動態類型的函數式編程語言。對應到Erlang里,每個Actor對應著一個Erlang進程,進程之間通過消息傳遞進行通信。相比共享內存,進程間通過消息傳遞來通信帶來的直接好處就是消除了直接的鎖開銷(不考慮Erlang虛擬機底層實現中的鎖應用)。
AMQP(Advanced Message Queue Protocol)定義了一種消息系統規范。這個規范描述了在一個分布式的系統中各個子系統如何通過消息交互。
七、Log4j
日誌記錄的優先順序,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。
八、Ehcache
EhCache 是一個純Java的進程內緩存框架,具有快速、精乾等特點,是Hibernate中默認的CacheProvider。Ehcache是一種廣泛使用的開源Java分布式緩存。主要面向通用緩存,Java EE和輕量級容器。它具有內存和磁碟存儲,緩存載入器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特點。
優點:
1、 快速
2、 簡單
3、 多種緩存策略
4、緩存數據有兩級:內存和磁碟,因此無需擔心容量問題
5、 緩存數據會在虛擬機重啟的過程中寫入磁碟
6、可以通過RMI、可插入API等方式進行分布式緩存
7、 具有緩存和緩存管理器的偵聽介面
8、支持多緩存管理器實例,以及一個實例的多個緩存區域
9、提供Hibernate的緩存實現
缺點:
1、使用磁碟Cache的時候非常佔用磁碟空間:這是因為DiskCache的演算法簡單,該演算法簡單也導致Cache的效率非常高。它只是對元素直接追加存儲。因此搜索元素的時候非常的快。如果使用DiskCache的,在很頻繁的應用中,很快磁碟會滿。
2、不能保證數據的安全:當突然kill掉java的時候,可能會產生沖突,EhCache的解決方法是如果文件沖突了,則重建cache。這對於Cache數據需要保存的時候可能不利。當然,Cache只是簡單的加速,而不能保證數據的安全。如果想保證數據的存儲安全,可以使用Bekeley DB Java Edition版本。這是個嵌入式資料庫。可以確保存儲安全和空間的利用率。
九、Redis
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis資料庫完全在內存中,使用磁碟僅用於持久性。相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。Redis可以將數據復制到任意數量的從伺服器。
1.2、Redis優點:
(1)異常快速:Redis的速度非常快,每秒能執行約11萬集合,每秒約81000+條記錄。
(2)支持豐富的數據類型:Redis支持最大多數開發人員已經知道像列表,集合,有序集合,散列數據類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的數據類型更好。
(3)操作都是原子性:所有Redis操作是原子的,這保證了如果兩個客戶端同時訪問的Redis伺服器將獲得更新後的值。
(4)多功能實用工具:Redis是一個多實用的工具,可以在多個用例如緩存,消息,隊列使用(Redis原生支持發布/訂閱),任何短暫的數據,應用程序,如Web應用程序會話,網頁命中計數等。
1.3、Redis缺點:
(1)單線程
(2)耗內存
十、Shiro
Apache Shiro是Java的一個安全框架,旨在簡化身份驗證和授權。Shiro在JavaSE和JavaEE項目中都可以使用。它主要用來處理身份認證,授權,企業會話管理和加密等。Shiro的具體功能點如下:
(1)身份認證/登錄,驗證用戶是不是擁有相應的身份;
(2)授權,即許可權驗證,驗證某個已認證的用戶是否擁有某個許可權;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色。或者細粒度的驗證某個用戶對某個資源是否具有某個許可權;
(3)會話管理,即用戶登錄後就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環境的,也可以是如Web環境的;
(4)加密,保護數據的安全性,如密碼加密存儲到資料庫,而不是明文存儲;
(5)Web支持,可以非常容易的集成到Web環境;
Caching:緩存,比如用戶登錄後,其用戶信息、擁有的角色/許可權不必每次去查,這樣可以提高效率;
(6)shiro支持多線程應用的並發驗證,即如在一個線程中開啟另一個線程,能把許可權自動傳播過去;
(7)提供測試支持;
(8)允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;
(9)記住我,這個是非常常見的功能,即一次登錄後,下次再來的話不用登錄了。
文字描述可能並不能讓猿友們完全理解具體功能的意思。下面我們以登錄驗證為例,向猿友們介紹Shiro的使用。至於其他功能點,猿友們用到的時候再去深究其用法也不遲。
十一、設計模式
這個算不上框架,可自行忽略,不過我認為設計模式的思想很有必要了解一下。
思想:
開閉原則:
開閉原則就是說對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼。
針對介面編程,針對介面編程,依賴於抽象而不依賴於具體。
盡量使用合成/聚合的方式,而不是使用繼承。
一個實體應當盡量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立。
使用多個隔離的介面,比使用單個介面要好。
里氏代換原則:
(1)子類的能力必須大於等於父類,即父類可以使用的方法,子類都可以使用。
(2)返回值也是同樣的道理。假設一個父類方法返回一個List,子類返回一個ArrayList,這當然可以。如果父類方法返回一個ArrayList,子類返回一個List,就說不通了。這里子類返回值的能力是比父類小的。
(3)還有拋出異常的情況。任何子類方法可以聲明拋出父類方法聲明異常的子類。 而不能聲明拋出父類沒有聲明的異常。