1. 程式人生 > >bos項目第一天(maven、遠程部署、svn、easyui的使用。)

bos項目第一天(maven、遠程部署、svn、easyui的使用。)

features 項目代碼 右鍵 load 集成 node 代碼 並發 元素

BOS 項目第一天 環境搭建

1. 項目分析

1.1. 產品和項目區別?

產品 先投資 ,做出產品, 再去銷售 (QQ360 )

項目 投標 ,分為甲方 (項目應用方)和乙方 (項目開發方), 甲方先給乙方 項目前期款, 交付項目後,收取尾款

1.2. BOS項目規模

項目周期 1年多

純編碼時間 3個多月 , 項目組開發人員 :20多人

1.3. 系統分類

OA 自動化辦公

CRM 客戶關系管理

ERP 是針對物資資源管理(物流)、人力資源管理(人流)、財務資源管理(財流)、信息資源管理(信息流)集成一體化的企業管理軟件

BOS

ERP 一個部分,在需求中需要和財務系統 、CRM系統 對接

1.4. 軟件開發流程

需求調研 (分析) ---- 系統設計 --- 編碼 --- 測試 --- 實施和運維

1.5. BOS 業務分析

開發任務 三個業務模塊

基礎設置模塊(基礎數據模塊 ---- 物流基礎數據 (取派人員信息、 區域信息 、 區域分配信息 、 線路信息 …. ) 對應 需求 2.6 章節

取派模塊 對應需求 2.7 業務受理 2.8 調度 ----- 接收客戶業務訴求 ,將業務數據錄入到系統

中轉模塊 (物流中數據管理) ---- 2.9 以後

兩個系統功能模塊 用戶

權限

時間安排 JBPM 4天 、搭建環境2天 、權限管理 1

1.6. 項目開發環境

開發環境 window + tomcat6/7 + myeclipse + mysql

產品環境 linux (企業服務器版) + Oracle + WebLogic/JBOSS

2. 項目導入

bos 項目代碼導入 myeclipse 開發工具

建議新建web項目, 將代碼對應部分復制到項目中 !

MyEclipseEclipseMaven

通常三個 source folder

src 存放源碼

resourcesconfig 存放配置文件

test 存放測試用例

struts2 約定要求,將JSP頁面 放入WEB-INF 下 !!!!

struts2 攔截器,攔截 Action的訪問 !!!

問題: Filter Interceptor 有何區別?

Filter 可以攔截所有web 資源

Interceptor 只能攔截Action

問題: 將很多JSP都放入WEB-INF 不能直接訪問,通過Action訪問,需要為每一個JSP配置一個Action嗎?

<!-- 需要進行權限控制的頁面訪問 -->

<action name="page_*_*">

<result type="dispatcher">

/WEB-INF/pages/{1}/{2}.jsp

</result>

</action>

訪問 page_a_b.action 映射到 /WEB-INF/pages/a/b.jsp

/page_common_index.action 主頁 /WEB-INF/pages/common/index.jsp

<jsp:forward page="/page_common_index.action"></jsp:forward>

問題: 主頁Action 也需要走strutsFilter Filter 默認只在請求方式下攔截

如果沒有配置 dispatcher : forward 不會在轉發情況下執行Filter

3. 使用maven進行項目構建

MyEclipse 自帶maven 插件

Eclipse 需要單獨安裝maven插件

3.1. Maven 在企業中怎麽用的 ?

Maven : 項目構建工具 ,進行項目編譯、測試、打包、運行、發布 ….

2 使用 maven將工程進行組件化 ,項目分為 表現層、業務層、 數據層 屬於maven創建 三個項目 ,分別進行三層開發

2 Maven Jenkins hudson) 對項目進行持續集成

2 企業中搭建私服

3.2. 建立maven骨架的項目,運行bos

1、 下載和解壓 maven zip

2、 在myeclipse 配置外部 maven

3、 配置倉庫setting文件 和 倉庫位置

默認位置 C:\Documents and Settings\seawind\.m2 (這個文件夾沒有 settings,xml

將解壓maven目錄/ conf/ settings.xml 復制 C:\Documents and Settings\seawind\.m2

settings.xml 指定本地倉庫位置

Maven 原理, 使用坐標導入jar包,先在本地倉庫找,如果沒有,會去網絡上倉庫下載 !

4、 將 repository.rar 解壓,覆蓋本機原來 的倉庫

5、 在myeclipse 建立maven工程

2 可以自己選擇骨架

quickstart 骨架, javasemaven項目

webapp 骨架, javaeemaven項目

2 使用simple project 骨架

輸入maven參數

坐標 GroupId ArtifactId Version

Packing 打包方式 : jar(給別人引入的)、pom(給別人繼承的)、war (用來運行的)


maven 項目結構分析

src/main/java 存放項目源碼

src/main/resources 存放項目配置文件

src/test/java 存放測試用例代碼

src/test/resources 存放測試配置文件

src/main/webapp 文件夾用來存放頁面代碼

6、 移植項目

將源碼 src/main/java

將配置文件 src/main/resources

將頁面 src/main/webapp (WEB-INF 不要移動lib,只需要pagesweb.xml )

7、 編寫pom.xml

使用坐標導入 jar

只需要獲取 需要項目坐標,就可以引入

http://search.maven.org/

http://mvnrepository.com/

8、運行項目

右鍵項目 – run as --- maven build ---- tomcat:run

使用 maven tomcat plugin 1.1 進行運行

3.3. tomcat-maven-plugin 插件

早期插件 groupId : org.codehaus.mojo artifactId : tomcat-maven-plugin 版本1.1

現在這個插件,被分為兩個插件,坐標也改了

3.3.1. 修改內部運行 tomcat的端口

<!-- 對插件進行配置 -->

<configuration>

<port>80</port>

</configuration>

3.3.2. 自動發布到遠程tomcat

使用 tomcat內部manager 程序,進行項目熱部署 (需要遠程tomcat 必須開啟的 )

使用 manager 組件

配置 tomcat/conf/tomcat-users.xml

<role rolename="admin-gui"/>

<user username="tomcat" password="s3cret" roles="admin-gui"/>

遠程發布

第一步: tomcat/conf/tomcat-user.xml 建立賬號

遠程訪問 tomcat6 tomcat-users.xml

<role rolename="manager"/>

<user username="tomcat" password="123456" roles="manager"/>

遠程訪問 tomcat7 : tomcat-users.xml

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<user username="tomcat" password="123456" roles="manager-gui, manager-script"/>

第二步 配置pom.xml 允許遠程發布

<!-- tomcat6.x -->

<url>http://localhost:8080/manager</url>

<!-- tomcat7.x -->

<url>http://localhost:8080/manager/text</url>

<server>myserver</server>

第三步 配置maven setting.xml 服務器myserver 連接屬性

<server>

<id>myserver</id>

<username>tomcat</username>

<password>123456</password>

</server>

保證外部tomcat 正確運行後,執行 tomcat:deploy / tomcat:redeploy

4. SVN的安裝與使用

為什麽要使用版本控制

對代碼進行備份,根據需要恢復

多人同時修改代碼時,防止並發修改代碼覆蓋問題

4.1. 使用 Visual SVN 搭建SVN服務器

搭建純粹SVN服務器 --- svn:// 訪問資源

SVN Apache服務器整合 ,搭建web SVN服務器 ---- https:// 訪問資源

指定硬盤倉庫位置 d:\Respositories

安裝如果系統賬戶是中文用戶名,報錯

1) 新建 SVN倉庫 bos

2) 新建 SVN 賬戶 yuy/123

訪問 https://localhost:8443/svn/bos/

安裝 SVN 客戶端軟件

4.2. SVN客戶端使用

4.2.1. TortoiseSVN 安裝使用

產生右鍵菜單

Repo-browser 查看倉庫中內容

Import 可以將資源上傳 服務器 (沒有建立與SVN倉庫同步 )

Check out SVN倉庫文件檢出 (與SVN倉庫同步 ) --- 開發人員檢出同步修改

Update 將本地文件更新到最新版本

Commit 將本地修改提交到服務器

Export 導出文件,與SVN倉庫不同步 (商品上線,代碼拷貝)

4.2.2. MyEclipse SVN 插件使用

site-1.8.8.zip ---- 綠色安裝

步驟一: 解壓壓縮包,建立插件目錄結構

插件目錄

----- eclipse

------ features

------ plugins

步驟二: 將插件目錄,復制myeclipse/dropins 目錄 ,重啟MyEclipse

步驟三: MyEclipse 建立倉庫連接

步驟四: MyEclipse 工程代碼上傳 SVN倉庫

步驟五: 將工程文件,上傳SVN服務器

不要將 maven項目target 目錄上傳 !!!

5. 系統主頁設計

使用 前端UI 框架,制作頁面效果 (Java工程師 不用學習 頁面東西,將頁面制作的很美觀 )

ExtJS 前端JS框架

Flex 基於Flash 制作頁面前端 (mxml ActionScript 腳本)

今天 項目引入 Jquery Easy UI 框架 (效果類似 Ext JS

快速上手,學習成本低

5.1. easyui的目錄分析

課程 jquery Easy UI 1.3.2 版本學習

(從1.2.3 版本 開始收費 )

demo 實例

locale 國際化信息

plugins 框架一些插件

src 源碼

themes 樣式文件

easyloader.js 框架核心加載器 (加載其它plugin

jquery-1.8.0.min.js jQuery類庫

jquery.easyui.min.js 框架類庫 (等價於 easyloader.js + plugins 所有插件 )

5.2. 在項目中引入 EasyUI

必須引入

<!-- 先引入 jquery js -->

<script type="text/javascript"

src="${pageContext.request.contextPath }/js/jquery-1.8.3.js">

</script>

<!-- 引入 easyuijs -->

<script type="text/javascript" src="${pageContext.request.contextPath }/js/easyui/jquery.easyui.min.js"></script>

<!-- 引入國際化 js -->

<script type="text/javascript" src="${pageContext.request.contextPath }/js/easyui/locale/easyui-lang-zh_CN.js"></script>

<!-- 引入 默認樣式 css -->

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/default/easyui.css"/>

<!-- 引入 icon圖標 css -->

<link rel="stylesheet"

type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/icon.css"/>

5.3. easyui layout 控件使用

布局控件 對一個div使用,也可以對 整個頁面 body元素使用

5.4. easyui accordion 折疊面板使用

設置fit屬性,讓面板占滿父容器

<!-- 折疊面板 -->

<!-- fit屬性,使當前div大小占滿父容器 -->

<div class="easyui-accordion" data-options="fit:true">

<!-- 通過iconCls 設置圖標,找 icon.css中 類定義 -->

<div data-options="title:‘基本功能‘,iconCls:‘icon-mini-add‘">面板一</div> <!-- 這裏每個div就是一個面板 -->

<div data-options="title:‘高級功能‘">面板二</div>

<div data-options="title:‘管理員功能‘">面板三</div>

</div>

5.5. easyui tabs 選項卡面板 使用

<div data-options="region:‘center‘">

<!-- 選項卡面板 -->

<div class="easyui-tabs" data-options="fit:true">

<div data-options="title:‘選項卡一‘">內容一</div> <!-- 這裏每個div 就是一個選項卡 -->

<!-- closeable 可關閉 -->

<div data-options="title:‘選項卡二‘,closable:true">內容二</div>

<div data-options="title:‘選項卡三‘">內容三</div>

</div>

</div>

5.6. 樹形菜單的制作

使用 ztree插件,制作樹形菜單

zTree 是一個依靠 jQuery 實現的多功能 樹插件。優異的性能、靈活的配置、多種功能的組合是 zTree 最大優點

下載 ztree 3.5.02 版本

api 文檔

css 樣式

demo 案例

js 核心類庫文件

all.js = core + check + edit + hide 開發中只需要引入 all.js

在頁面引入 ztree

<!-- 引入ztree -->

<script type="text/javascript" src="${pageContext.request.contextPath }/js/ztree/jquery.ztree.all-3.5.js"></script>

<link rel="stylesheet" type="text/css"

href="${pageContext.request.contextPath }/js/ztree/zTreeStyle.css"/>

案例一: 標準數據tree

1、 在顯示樹位置寫 <ul> 標簽

<!-- 顯示樹 -->

<ul id="basicTree" class="ztree"></ul>

2、 通過js 編寫setting對象

// 設置樹參數

var setting = {};

3、 設置樹節點數據

// 數據

var zNodes = [

{"name":"菜單一"}, // 每個{} 就是一個節點

{"name":"菜單二"}

];

4、初始化樹

// 初始化樹

$.fn.zTree.init($("#basicTree"), setting, zNodes);

復雜樹

問題: 標準數據樹,不適用大數據的樹結構

案例二: 簡單數據ztree

1、 在顯示ztree位置定義 ul

<!-- 顯示樹(簡單數據 ) -->

<ul id="simpleTree" class="ztree"></ul>

2、 設置ztree參數 setting

// 設置樹參數

var setting = {

data : {

simpleData : {

enable : true

}

}

};

3、 樹節點數據

// 數據

var zNodes = [

// id 代表本節點編號,pId代表父節點編號

{"id":"1","pId":"0","name":"菜單一"},

{"id":"2","pId":"0","name":"菜單二"}

];

4、 初始化樹

// 初始化樹

$.fn.zTree.init($("#simpleTree"), setting, zNodes);

復雜樹

通過url 屬性,完成樹節點跳轉

通過icon屬性,定制節點圖標

bos項目第一天(maven、遠程部署、svn、easyui的使用。)