亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用myeclipse集成struts,hibernate,spring的一

系統 1977 0
在java 企業應用領域,ejb的功能強大同ejb的配置復雜,難于學習一樣出名。但在以前我們又有什么辦法呢?只有硬著頭皮來學ejb。真有點“明知山有虎,偏向 虎山行”的精神。現在形式有了樂觀的變化,java開源的持續走紅,使得開發java企業級應用不再局限于ejb領域。這里我主要介紹一下怎樣采用開源的 Spring,Hibernate以及Struts構建一個輕量級的架構。
一、整體架構介紹
在軟件工程領域,為了降低模塊耦合度,提高模塊的可重用性,分層一直是廣為采納的一個方法。其實分層還可以使開發人員專注于某一層進行開發,使得軟件開發的分工變細,提高生產效率(這一點上堪比福特發明的流水線生產汽車的做法,各個工人負責特定部件的生產,最后組裝)。
一個企業級的java應用,通常分為以下幾層:UI層,業務邏輯層,數據持久層,域對象層。下面對這幾層分別作簡要介紹:
1. ? ? UI層:負責與用戶交互,包括:接受用戶的請求,把處理結果返回給用戶。這里我們采用struts來UI層,雖然比起Tapestry以及JSF這些事件 驅動的表現層技術而言,Struts的設計顯得有些老土,但它目前仍是表現層事實上的標準,所以我們還是選用它。
2. ? ? 業務邏輯層:主要負責具體的業務處理。通過Spring的IOC以及AOP實現各個功能的耦合相連
3. ? ? 數據持久層:主要負責與底層的數據庫打交道。這里我們采用Spring封裝的Hibernate操作來簡化實際的編碼。主要的操作為CRUD(create ,read,update,delete)
4. ? ? 域對象層:具體的實體類,如老師,學生等等這些具體的類(注意:需要與數據庫中的某一標對應)。
以上只是簡單介紹了各個層的劃分以及各層所對應的開源框架,要詳細了解各層的具層信息,需要訪問 struts,hibernate,spring的官方網站。
二、實例分析
實例說明:一個網站登錄的例子,比較簡單,但能說明各層是如何協調工作的。
工具:jdk1.5,eclipse3.2,myeclipse5.0GA,mysql5.0,tomcat5.5,至于這幾個工具到底該怎么裝這里我就不多說了,大家不清楚的可以到網上搜搜。下面是具體操作步驟:
預備工作:用mysql創建一個test數據庫,再創建一個user表,再創建兩個字段username和password。腳本如下

DROP DATABASE IF EXISTS `test`;
CREATE DATABASE `test`
USE `test`;

CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`password` varchar(30) default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
打開myeclipse的database explore透視圖




右鍵單擊左側的空白區域 ,點擊 new 按鈕



單擊“configure database driver”來配置數據庫的驅動,你必須有mysql的jdbc驅動 ,沒有的到mysql的官方網站上下載。



測試數據庫配置是否成功。




1. ? ? 新建一個myeclipse的web工程




2. ? ? 引入Spring包
右鍵工程名







注意:這里為了省得以后再添加spring的相關包,所以一次性的選中了所有的包。選中
Copy選項,它會把這些包拷貝到/WebRoot/WEB-INF/lib目錄下,方便以后的實際部署。
3. ? ? 添加hibernate包



系統會檢測到該工程已經添加了Spring包,選擇使用Spring的配置文件



點擊 next



點擊 next



點擊 next



最后點擊Finish按鈕即可。
4切換到database explore視圖,右鍵 點擊 user 表的“Hibrnate Reverse Engineering”



彈出如下窗口



點擊 “next”



再單擊finish
? ? 在包視圖中 可以看到 src下多了一個名為vo的package以及該包下的四個文件



為了更加直觀地顯示分層,我另建了一個名為dao的package,并把UserDAO.java移到dao中



同時注意在applicationContext.xml中把對UserDAO的引用部分也作相應修改。
5. ? ? 建立業務邏輯層代碼
新建一個名為service的包,再在里面建立一個Service類,代碼如下
package service;

import java.util.List;

import vo.User;
import dao.UserDAO;

public class Service {

? ? private UserDAO userDao;

? ? public UserDAO getUserDao() {
? ? ? ? return userDao;
? ? }

? ? public void setUserDao(UserDAO userDao) {
? ? ? ? this.userDao = userDao;
? ? }

? ? public boolean isValid(User user) {//判斷用戶是否合法

? ? ? ? List result = userDao.findByExample(user);

? ? ? ? if (result.size() > 0)
? ? ? ? ? ? ? return true;
? ? ? ? else
? ? ? ? ? ? ? return false;

? ? }

}
同時在applicationContext.xml中添加如下配置
<bean id="service" class="service.Service" singleton="false">
? ? ? ? <property name="userDao">
? ? ? ? ? ? ? <ref bean="userDao" />
? ? ? ? </property>
? ? </bean>
6.配置UI層
添加struts包,方法同添加spring一樣



配置struts-config.xml文件,在空白區域右鍵單擊 new 一個 action ,actionForm ,jsp










下一步
對forward作設置,增加succeed轉到welcome.jsp,fail轉到login.jsp

在WebRoot目錄下建立一個welcome.jsp文件,顯示用戶登錄成功后的歡迎信息。
6. ? ? 把struts和spring連接起來
6.1修改struts-config.xml注意紅色字體部分
<action
? ? attribute="loginForm"
? ? input="/login.jsp"
? ? name="loginForm"
? ? path="/login"
? ? scope="request"
? ? type="org.springframework.web.struts.DelegatingActionProxy">
? ? <forward name="fail" path="/login.jsp" />
? ? <forward name="succeed" path="/welcome.jsp" />
</action>

再在strut-config.xml中添加如下代碼
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>>
6.2修改applicationContext,增加以下內容
<bean name="/login" class="web.action.LoginAction"
? ? ? ? singleton="false">
? ? ? ? <property name="service">
? ? ? ? ? ? ? <ref bean="service" />
? ? ? ? </property>
</bean>
6.3修改LoginAction.java部分代碼,增加一個service變量,以及其 get/set方法(主要用于Spring IOC)。代碼如下:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package web.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import web.form.LoginForm;
import service.Service;
import vo.User;

/**
* MyEclipse Struts Creation date: 09-27-2006
*
* XDoclet definition:
*
* @struts.action path="/login" name="loginForm" input="/login.jsp"
* ? ? ? ? ? scope="request" validate="true"
* @struts.action-forward name="fail" path="/login.jsp"
* @struts.action-forward name="succeed" path="/welcome.jsp"
*/
public class LoginAction extends Action {
? ? /*
? ? * Generated Methods
? ? */

? ? /**
? ? * Method execute
? ? *
? ? * @param mapping
? ? * @param form
? ? * @param request
? ? * @param response
? ? * @return ActionForward
? ? */

? ? private Service service;

? ? public void setService(Service service) {
? ? ? ? this.service = service;
? ? }

? ? public Service getService() {
? ? ? ? return service;
? ? }

? ? public ActionForward execute(ActionMapping mapping, ActionForm form,
? ? ? ? ? ? ? HttpServletRequest request, HttpServletResponse response) {
? ? ? ? LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // stub
? ? ? ? User user = new User();
? ? ? ? user.setPassword(loginForm.getPassword());
? ? ? ? user.setUsername(loginForm.getUserName());
? ? ? ? if (service.isValid(user))
? ? ? ? ? ? ? return mapping.findForward("succeed");
? ? ? ? else
? ? ? ? ? ? ? return mapping.findForward("fail");
? ? }
}
至此一個簡單的登錄已經做成。剩下的工作就是打包并發布你的應用了。
?

使用myeclipse集成struts,hibernate,spring的一個示例程序


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 狠狠鲁狠狠操 | 狠狠躁夜夜躁人人爽天天miya | 久久99热只有视精品6国产 | 国产精品国产三级国产an | 99精品国产在热久久 | 五月国产综合视频在线观看 | 美女羞羞免费网站 | 成人亚洲欧美日韩中文字幕 | 激情五月开心婷婷 | 四虎影视久久久 | 日日摸夜夜摸狠狠摸97 | 精品一区二区三区免费毛片爱 | 成人免费视频在 | 国产亚洲欧美一区二区 | 欧美日韩在线观看免费 | 全部免费国产潢色一级 | 成人午夜视频在线 | 久久精品日日躁精品 | 清纯唯美亚洲综合日韩第 | 国产麻豆va精品视频 | 欧美成在线视频 | 日本一区二区三区不卡在线视频 | 国产一区二区在线观看视频 | 欧美香蕉视频在线观看 | 亚洲天堂爱爱 | se在线观看 | 奇米影视777欧美在线观看 | 中文字幕一区二区精品区 | 99伊人 | 久久99精品久久久久子伦 | 日韩欧美伊人久久大香线蕉 | 99久久免费国产精精品 | 亚洲精品777 | 亚洲视频999| 国产一级久久免费特黄 | 香蕉超级碰碰碰97视频蜜芽 | 日本不卡在线视频 | 国产成人 免费观看 | 99视频精品全部免费观看 | 日本二区视频 | 欧美国产亚洲一区二区三区 |