1. 程式人生 > >【javaWeb】第64天——SSH練習第一天

【javaWeb】第64天——SSH練習第一天

svn的使用


課程回顧:SSH三大框架整合

1. 回顧SSH開發需要的jar和配置檔案
	* Struts2框架
		* web.xml和struts.xml

	* Hibernate框架
		* hibernate.cfg.xml
		* Customer.hbm.xml
	
	* Spring框架
		* applicationContext.xml
		* log4j.properties
	
	* Spring框架整合JavaWEB
		* 在web.xml配置監聽器	

2. Spring框架整合Struts2框架
	* Action類由Struts2建立(按名稱自動裝配)
	* Action類交給Spring建立(推薦的方式)
		* strtus.xml的Action編寫ID值
		* 配置成多例的(不能忘記)
		* 手動注入service

3. Spring框架整合Hibernate框架
	* 帶有hibernate.cfg.xml配置檔案
		* 需要使用LocalSessionFactoryBean物件來載入hibernate.cfg.xml配置檔案,生成SessionFactory物件。
	
	* 不帶有hibernate.cfg.xml配置檔案(推薦使用)
		* 使用LocalSessionFactoryBean物件來載入

4. HibernateTemplate模板類的簡單的使用
	* Spring框架提供HibernateTemplate類,方便開發
	* 以後再編寫Dao層,都可以繼承HibernateDaoSupport類(父類:提供HibernateTemplate,如果不想注入HibernateTemplate,可以注入SessionFactory)

5. 解決延遲載入的問題
	* 產生了2個問題(第一個問題是jar衝突的問題,第二個問題no session的異常)
	* 解決方案
		* 在web.xml中配置過濾器OpenSessionInViewFilter
	* 做SSH框架的整合的時候,直接拷貝web.xml就OK

今天課程內容

1. svn版本控制軟體的安裝和使用

SVN的概述和安裝


技術分析之svn的概述

1. svn的概述
	* SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。
	* 網際網路上很多版本控制服務已從CVS遷移到Subversion
	* 說得簡單一點SVN就是用於多個人共同開發同一個專案,共用資源的目的。
	* 解決團隊開發中的程式碼管理的問題

2. 如果沒有svn,一般會遇到的問題
	* 程式碼管理混亂
	* 備份多個版本,佔用磁碟空間大
	* 解決程式碼衝突困難
	* 容易引發BUG
	* 難於追溯問題程式碼的修改人和修改時間
	* 難於恢復至以前正確版本
	* 無法進行許可權控制
	* 專案版本釋出困難
	
	* 使用SVN工具,就可以管理上述的這一類問題!!

3. 簡單的術語
	* 倉庫
	* 提交
	* 檢出/更新

4. 常用的版本的控制工具
	* VSS、CVS、SVN、GIT

技術分析之svn的體系結構

1. 體系結構如圖(看SVN的使用手冊的圖)
	* SVN的倉庫
	   * DB			-- 使用資料庫作為SVN的倉庫
	   * FSFS		-- 使用系統檔案方式作為SVN的倉庫
	
	* SVN倉庫的訪問(SVN的伺服器)
	   * 整合Apache形式:http協議訪問倉庫
	   * svnserve的方式:使用命令開啟SVN的服務,使用SVN的協議訪問
	
	* SVN的客戶端
	   * 命令列訪問
	   * 圖形化介面


技術分析之svn的安裝

1. 雙擊Setup-Subversion-1.6.5.msi檔案,注意自己的安裝路徑。點選next即可!!
	* 安裝完成後,開啟DOS視窗,輸入svnadmin --version 回車,檢視是否安裝成功!!
	* 如果發現安裝不成功,拷貝C:\Program Files (x86)\Subversion\bin路徑,到環境變數的path配置一下就可以了!!

2. 可以瞭解一下svn安裝後的目錄結構
	* bin			-- 可執行的二進位制檔案
	* iconv			-- 字符集編碼的檔案
	* licenses		-- 許可證協議
	* share			-- 本地語言轉換

技術分析之建立SVN的倉庫(必須要先建立倉庫,才能啟動svn服務)

1. SVN已經安裝完成了,下面需要建立SVN的倉庫
	* 在某一個盤下建立資料夾,隨意建立。例如:在C盤下建立Repositories檔案,一個倉庫可以存放多個專案,在Repositories資料夾中再建立多個子資料夾。代表不同的專案

2. 可以使用命令的方式或者圖形化介面的方式來建立
	* 命令的方式:svnadmin create c:\Repositories\crm

3. 倉庫建立好後,有如下的一些目錄結構
	* conf			-- 配置檔案(重點的配置檔案)
		* svnserve.conf		-- SVN的配置檔案
		* passwd			-- 使用者名稱和密碼的檔案
		* authz				-- 許可權認證的檔案
	
	* db			-- 版本資料儲存目錄
	* hooks			-- 存放版本庫勾子目錄
	* locks			-- 儲存庫鎖目錄,用來跟蹤庫的訪問者

4. 啟動倉庫
	1. 啟動倉庫分成兩種主要的形式
		* 單倉庫啟動(只啟動其中的一個倉庫)
		* 多倉庫啟動(啟動所有的倉庫)
	
	2. 啟動倉庫的方式有三種
		* 命令列啟動
			* 單倉庫啟動:
				* svnserve -d -r C:\Repositories\crm
			* 多倉庫啟動:
				* svnserve -d -r C:\Repositories
		
		* 使用批處理檔案的方式啟動,先建立一個批處理的檔案,在該檔案中複製如下命令
			* 單倉庫啟動:
				* svnserve -d -r C:\Repositories\crm
			* 多倉庫啟動:
				* svnserve -d -r C:\Repositories
		
		* 在系統上註冊服務的方式,以後只要電腦一開機就自動啟動了,注意:以下命令不要複製錯誤了!!
			* 命令:sc create SVN-Service binpath= "C:\Program Files (x86)\Subversion\bin\svnserve.exe --service -r C:\Repositories" displayname= "SVN-Service" start= auto depend= Tcpip
				
				* 注意修改的地方1:C:\Program Files (x86)\Subversion\bin是自己的安裝路徑
				* 注意修改的地方2:C:\Repositories建立的路徑(多倉庫啟動的方式)
		
		* 系統提示許可權不足。使用管理員許可權執行dos視窗		
		
	3. 總結:採用服務的方式啟動倉庫和如果刪除服務
		* 命令:sc create SVN-Service binpath= "C:\Program Files (x86)\Subversion\bin\svnserve.exe --service -r C:\Repositories" displayname= "SVN-Service" start= auto depend= Tcpip
		
		* 如果想要刪除服務:sc delete SVN-Service

SVN的客戶端工具的使用


技術分析之安裝圖形畫介面的工具

1. 在視覺化工具資料夾中選擇自己電腦的版本的安裝軟體,雙擊安裝!
	* 雙擊 TortoiseSVN-1.7.12.24070-x64-svn-1.7.9.msi 安裝
2. 安裝完成圖形介面後,可以使用圖形介面的方式建立倉庫
3. 安裝後重啟電腦

技術分析之圖形化介面的使用

1. 模擬兩個人同時使用SVN的環境,使用圖形介面進行檔案的提交和更新的操作
2. 簡單的操作
	* 選擇 svn checkout		-- 檢出(第一次都需要檢出資料,和svn的伺服器取得同步)
	* svn的預設埠號是3690,使用協議:svn://localhost:3690/crm 來檢出內容
	* 建立檔案,出現一個藍色的 ? 號,說明該檔案還沒有被svn所管理,需要手動新增該檔案。點選 add 完成新增
	* 出現藍色的 + 號,說明已經被svn管理了,但是沒有與svn伺服器同步
	* 選中,右鍵點選提交,就可以與svn同步了

3. 如果沒有提交成功,說明現在是沒有許可權的,可以先設定簡單的許可權
	*  簡單的設定許可權的版本
		* 1.開啟crm的倉庫
		* 2.找到倉庫:conf/svnserve.conf
			* anon-access = write			---匿名使用者可讀,可寫.

4. 其他人就可以來更新程式碼了

技術分析之設定許可權

* 步驟一:找倉庫中的conf/svnserve.conf
* 步驟二:修改配置檔案
	* anon-access = none			-- 匿名使用者沒有許可權。(取值:none/read/write)		
	* auth-access = write			-- 認證使用者有讀寫許可權
	* password-db = passwd			-- 讓passwd的檔案生效
	* authz-db = authz				-- 讓authz的檔案生效

* 步驟三 :開啟passwd檔案:設定使用者名稱和密碼
	xx=123
	yy=123

* 步驟四	:開啟authz檔案:設定使用者的許可權
	[groups]
	crmGroup=xx,yy
	
	[/]
	@crmGroup=rw
	* = 

技術分析之解決程式碼衝突問題(衝突一定會存在,必須要會解決)

1. 兩個人都修改了同一個檔案,然後一個先提交了,後提交的使用者就會產生衝突。
2. 後提交的人需要來解決衝突
	* 先更新,然後刪除掉多餘的內容
	* 再重新提交

技術分析之鎖機制(瞭解)

1. 右鍵,選擇get lock 加鎖,提交後預設就解鎖了!!
2. 可以選擇倉庫,釋放鎖

Eclipse中安裝svn的外掛安裝和使用


技術分析之Eclipse中安裝svn外掛

1. 在Eclipse中安裝svn的外掛
	* 先退出Eclipse
	* 步驟一:下載site-1.10.11.zip
		* 將其解壓
			* features
			* plugins
	
	* 步驟二:建立一個資料夾svn,將兩個資料夾copy到svn路徑下
	* 步驟三:開啟Eclipse安裝路徑:
		* eclipse\dropins
	* 步驟四:將svn的資料夾copy到dropins路徑
	* 步驟五:重新啟動Eclipse

技術分析之Eclipse中使用SVN工具