Struts1.2+spring2.0+hibernate3.3 搭建SSH框架

1、實驗環境準備

 MyEclipse8.6
 Tomcat6.0.20
 MySQL5.1
 數據庫腳本程序
CREATE TABLE user (
id int(11) NOT NULL auto_increment,
username varchar(50) default NULL,
password varchar(50) default NULL,
PRIMARY KEY (id)
);
INSERT INTO user VALUES ('1', 'admin', 'admin');
環境的搭建這裏就不寫了,網上有很多這樣的資料。

2、開始搭建!

打開MyEclipse,需要注意的是這裏應該處於MyEclipse Java Enterprise視圖;新建一個Web Project,輸入適當的工程名字,這裏輸入ssh,Finish即可。

確定之後MyEclipse會生成名爲SSH的項目,其中生成的目錄結構如下所示:

3. 添加Struts1.2框架支持

在ssh工程上面右擊,在彈出的菜單中選擇MyEclipse -> Add Struts Capabilities…,添加Struts的支持。

在彈出的對話框中選擇Struts 1.2,修改Base package for new classes成所需的包名,其餘保持原狀,Finish即可

完成後的結構爲:

4. 添加Spring2.0框架支持
在ssh工程上面右擊,在彈出的菜單中選擇MyEclipse -> Add Spring Capabilities…,添加Spring框架支持

由於Spring採取最小化庫發佈的方式,使得Spring的庫文件彼此都是分離的,因而我們需要自己選擇需要的庫,需要引用的如下圖:

選擇好後Next,在窗口中選擇Browse,選擇ssh工程下面的WEB-INF文件夾,然後Finsh。

5. 配置數據源
在MyEclipse右上角選擇MyEclipse Database Explorer,打開數據庫管理視圖。

在左側的DB Browser點擊右鍵,選擇New…,打開Database Driver對話框。

在Database Driver對話框中按照如下配置選擇數據庫驅動。首先選擇Driver Template,在這裏我們選擇MySQL。Driver Name是以後配置時使用的驅動名字,用以區分驅動,這裏使用MySQL即可。然後根據實際情況填寫URL,User name和Password。點擊Add JARs添加數據庫驅動文件。爲方便配置,可以選擇Save password保存密碼。配置完畢後Finish即可。

6. Spring與Hibernate的整合
當配置完數據源後,就可以添加Hibernate支持了。切換到MyEclipse Java Enterprise視圖,在ssh工程上面右擊,在彈出的菜單中選擇MyEclipse -> Add Hibernate Capabilities…,添加Hibernate的支持。

我們選擇Hibernate3.3,全部按照默認設置即可,然後點擊Next;

在對話框中選擇Spring configuration file,表示我們希望將Hibernate託管給Spring進行管理,這是將Hibernate與Spring進行整合的基礎。然後點擊Next;

在出現的對話框中選擇Existing Spring configuration file。因爲我們已經添加了Spring的配置文件,所以這裏選擇的是已存在的配置文件。MyEclipse會自動找到存在的那個文件。然後在SessionFactory ID中輸入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,這裏我們輸入sessionFactory即可。然後點擊Next;

在出現的對話框中的Bean Id裏面輸入數據源在Spring中的Bean ID的名字,這裏我們輸入dataSource。然後在DB Driver裏面選擇我們剛剛配置好的ssh,MyEclipse會將其餘的信息自動填寫到表格裏面。然後點擊Next;

在出現的對話框中取消Create SessionFactory class。點擊Finish即可。

此時MyEclipse會自動打開Spring的配置文件,文件內容爲:

此時,切換到MyEclipse DataBase Explorer視圖,右鍵打開數據庫連接,在需要使用的數據表格上面點擊右鍵,選擇Hibernate Reverse Engineering...。這裏我們使用剛剛建立在test數據庫中添加的user表。

在打開的對話框中修改Java src folder爲我們建立的/ssh/src,這裏需要選擇到src文件夾,並且需要填寫Java package,這是MyEclipse生成的類所在的包,我們將其取名爲user。然後選擇Java Data Object,建立POJO類。然後選擇Java Data Access Object。其中,POJO類是數據庫表格所對應的Java類,JDO類是MyEclipse自動生成的對數據庫的一些操作。這裏會封裝一些常用的操作,簡化我們的編寫。填寫完成後點擊Next。

在出現的對話框中選擇ID Generator爲native,然後點擊Finish即可。

此時ssh項目的目錄結構如下所示。其中的User.Java是MyEclipse生成的使用面向對象的Java語言對數據庫表格進行的抽象,User.hbm.xml是將數據庫表格中的字段和POJO類的屬性進行映射的定義,UserDAO.java封裝了一些MyEclipse自動生成的對數據庫的操作。

這時我們修改一下文件目錄,使之更好的組織。我們建立一個dao包,將DAO類與POJO類分開。然後我們在struts包下面建立action和form包,用來管理Struts的Action和Form。爲了將實現與接口進行解耦,我們建議在dao包下面添加接口,然後建立dao.impl包,將實際的DAO類放在這裏。DAO類是直接與數據庫打交道的類,爲了對業務邏輯進行封裝,我們將業務全部寫在service類裏面,和dao一樣,我們先建立service包,裏面添加業務接口,具體的實現放在service.impl裏面。
將UserDAO.java移動到dao的impl包下面,並在dao包下建立接口IUserDAO,內容爲:

在service中建立接口IUserService.java,在service中impl中建立UserService.java

UserService.java:

此時的整體工程結構爲:

此時的applicationContext內容需要配置bean內容爲:

7. 整合Struts和Spring
Struts和Spring整合方式其核心是讓Struts能夠訪問到交給Spring進行託管的類,這個我在網上看到了一個方式,自我認爲很好,因此只要我們可以讓Struts從Spring獲得需要的類就可以了。 爲了達到這個目標,我們創建一個類BaseAction:

爲了讓Web容器能夠初始化Spring,我們需要修改web.xml文件,增加以下內容:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章