ssi的框架主要是由struts2,spring以及ibatis組成,他們負(fù)責(zé)各層之間的交互與協(xié)作,從而實(shí)現(xiàn)整個(gè)web端的功能實(shí)現(xiàn)與整合。Struts目前主要負(fù)責(zé)數(shù)據(jù)傳遞和控制方面,spring則依靠其強(qiáng)大的依賴注入技術(shù)實(shí)現(xiàn)了類似bean托管和整合等功能,當(dāng)然這只是spring功能中的冰山一角,而ibatis作為一種輕量級(jí)的OR Mapping框架,提供了半自動(dòng)化對(duì)象關(guān)系映射的實(shí)現(xiàn),自由度相對(duì)于hibernate更高。
框架結(jié)構(gòu):
這是我在網(wǎng)上找到的一張關(guān)于ssi框架的結(jié)構(gòu)圖,個(gè)人感覺畫的還是蠻不錯(cuò)的,對(duì)于入門者來說,層次機(jī)構(gòu)很清晰,比較實(shí)用(感謝這位大大的分享):
在這里可以很明顯的看出ssi框架的大體結(jié)構(gòu)以及各層之間的交互情況,頂層表現(xiàn)層的話,就java而言主要是jsp,html等視圖層技術(shù)的編寫,其中涉及我們熟悉的javascript,jquery以及extjs等。在控制層來說的話,主要是利用strust2標(biāo)簽功能實(shí)現(xiàn)action與視圖層的數(shù)據(jù)交互,當(dāng)然也可以使用ajax的技術(shù)實(shí)現(xiàn)同樣的功能,這個(gè)就按個(gè)人喜好而來了。在業(yè)務(wù)邏輯層。主要是利用spring的依賴注入實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯類和dao類的實(shí)例托管,當(dāng)然各類的實(shí)例都可以托管在spring中進(jìn)行統(tǒng)一管理和關(guān)聯(lián),包括事務(wù),數(shù)據(jù)源等等。在持久層,利用ibatis提供的半自動(dòng)化對(duì)象關(guān)系映射的實(shí)現(xiàn),開發(fā)人員可以根據(jù)需要編寫具體的sql語句,通過相應(yīng)的xml的配置實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。
總之,SSI框架能夠降低我們代碼的耦合度,增強(qiáng)了代碼的健壯性和可重用性,加快了開發(fā)速度,但是也有一些不足之處,比如由于三種框架的配置文件較多,也給我們帶來了一些不便,特別是對(duì)于較小的應(yīng)用來說更是如此
SSI框架快速搭建
1、在Package Explore中右鍵new選中web Project
2、輸入項(xiàng)目名稱點(diǎn)擊finish
3、導(dǎo)入struts2
(1):
(2):選擇Struts2.1然后選擇/*點(diǎn)擊next
(3):默認(rèn),點(diǎn)擊finish,導(dǎo)入完成
2、添加Spring支持
(1)右鍵項(xiàng)目,選擇Add Spring Capabilities
(2)、勾選jar包,并選中JAR Library Installation中的第二項(xiàng),點(diǎn)擊next
(3)、修改Folder為WebRoot/WEB-INF點(diǎn)擊finish完成Spring引入
3、開始配置ibatis
(1)、在applicationContext.xml文件中添加配置文件
(2)、在src下新建路徑org.wwy.utils添加sqlMapping.properties文件
jdbc.url=jdbc\:mysql\://localhost\:3307/MyBatis
jdbc.username=root
jdbc.password=wwy520223
(3)、在org.wwy.utils下添加sqlMapConfig.xml文件
(4)、在src下新建包org.wwy.PO編寫java實(shí)體類
package org.wwy.PO;
public class User {
private Long id;
private String name;
private String pwd;
private Long age;
private Long sex;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Long getAge() {
return age;
}
public void setAge(Long age) {
this.age = age;
}
public Long getSex() {
return sex;
}
public void setSex(Long sex) {
this.sex = sex;
}
}
(5)、在org.wwy.PO下添加User.xml映射文件
4、在web.xml中添加spring監(jiān)聽
完成SSI框架搭建
5、啟動(dòng)tomcat測(cè)試SSI框架,報(bào)錯(cuò):
Caused by: java.lang.ClassNotFoundException: com.ibatis.common.xml.NodeletException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1324)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177)
。.. 33 more
6、下載ibatis的jar包復(fù)制到WEB-INF/lib目錄下,再從buildpath導(dǎo)入一下,重新測(cè)試OK
評(píng)論