V1.0版本的軟件界面:
該版本打包放在了百度網盤鏈接:http://pan.baidu.com/s/1c2knCty 密碼:8l62
CSDN下載:http://download.csdn.net/download/qq1130141391/9756355
終於忍不住要發一個版本了,畢竟從開始做網站設計器到現在,已經將近一個月了,這一個月利用下班時間,一邊溫習Java Web開發技術,一邊編寫網站設計器的代碼,感覺太漫長了,好損士氣,爲了更好的執行下一階段的任務,就忍不住先出一個版本,用來鼓勵一下自己。
整個網站設計器開發任務是包括後臺代碼,前臺JavaScript代碼和前臺頁面3部分的。由於不能全職去開發,在這一個月內只是利用了零零星星的時間進行開發,感覺進度實在太慢了,不過沒辦法,只能耐心點,畢竟所有代碼都得自己寫,還得自己寫單元測試代碼。
所以第一個版本就大打折扣了,基本完成了後臺代碼的自動生成。之所以說是基本完成,那是因爲後臺代碼還有一小部分可以增加的功能、一些可以優化的功能。到目前來說,能自動生成一個MyEclipse的web項目,該web項目使用的是Struts2,Spring,Hibernate來架構的,會自動生成對應的框架需要的配置文件,就代碼來說,也生成了對應的Domain,Dao, Service, Action代碼,完成了絕大部分的增刪查改的功能,而且增加的數據校驗,異常處理、錯誤碼處理部分也相對優雅。
但是還是有很多任務列表未完成,比如多表關聯查詢,包括一對一,一對多,多對一,多對多。目前來說僅支持單表操作。還有比如批量增,批量改,批量刪除,登錄控制,權限管理,文件上傳,文件下載,導入Excel數據,發送郵件,發送短信,忘記密碼,找回密碼,防止SQL注入,圖片驗證碼,生成二維碼,生成水印,防止惡意訪問,公共代碼工程等等,還是有很多沒完成的。只能慢慢來了。
由於是使用Java Swing + JavaFx開發的界面,由於使用到了JavaFx,所以只能使用JDK1.8, 因爲JDK1.8開始集成了JavaFx了。但是生成的MyEclipse web工程是使用JDK1.7測試的,Tomcat是使用7.0的。現在感覺越來越多的Java開源庫,框架隨着JDK的升級,也依賴對應的JDK版本了。後面優化的話,會逐漸升級Struts, Spring, Hibernate到更高版本,JDK也會升級到對應版本吧。界面開發也會單純使用JavaFx, 未來也會支持Web版本。但這些只能往後面排了,等完成所有的任務列表,再考慮吧。
- 下面是網站設計器的任務列表:
- 粗體+斜體:代表任務未開始
- 粗體:代表任務已完成編碼,待測試和優化
- 正常:代表完成編碼,單元測試
- 後臺代碼包括
- Java代碼
- 配置文件
- Java代碼部分包括
- Domain(POJO)
- Dao
- Service
- Action
- 配置文件包括
- web.xml
- spring.xml
- struts.xml
- struts-domain.xml
- log4j.xml
- 前臺代碼包括
- JavaScript代碼
- 表單頁面HTML代碼
- 打包成MyEclipse工程,配置MyEclipse標準工程模板
- 測試、Debug
- 實際項目應用
後臺代碼:生成Java Bean(Domain/POJO):
- 需放置在對應的package目錄(domain)
- 需導入用到的Java類
- 需要類命名需遵循Java命名規範
- 字段命名需遵循Java命名規範
- 字段有對應的getter和setter
- 需實現Seriable接口
- 需生成對應hibernate Java Bean配置文件
- 配置文件需支持動態插入動態更新
- 配置文件需支持對應的映射數據類型
- 需支持日期,時間,時間戳的映射
- 需支持大數據對象如大文本,二進制數據映射
- 需支持浮點類型的小數位數
- 需支持外鍵字段
- 需支持一對一,一對多,多對一,多對多的級聯查詢
- 生成toString方法
- 支持配置字段說明描述,主要指字段名
- 支持配置校驗規則描述說明
- 增加支持非空字符串選項
- 增加非空字段生成對應的索引,加快查詢效率
- 需放置在對應的package目錄(Dao)
- 需導入用到的Java類
- 需要類命名需遵循Java命名規範
- 字段命名需遵循Java命名規範
- 需保存Java Bean(增)
- 需一次性批量保存Java Bean(增)
- 需更新Java Bean,可以選擇特定字段不更新(改),需增加int類型返回值
- 需一次性批量更新Java Bean(增)
- 需根據主鍵更新特定的字段(改)
- 需根據主鍵刪除Java Bean(刪),需增加int類型返回值
- 需一次性批量刪除Java Bean(刪)
- 需根據唯一性字段刪除Java Bean(刪)
- 需據根主鍵查詢Java Bean(查)
- 需根據唯一性字段查詢Java Bean(查)
- 需根據模糊查詢字段查詢記錄總數(查)
- 需根據模糊查詢字段查詢記錄列表(查)
- 需根據精確查詢字段查詢記錄總數(查)
- 需根據精確查詢字段查詢記錄列表(查)
- 模糊查詢需要根據查詢的字段進行升序或者降序的排序(查)
- 精確查詢需要根據查詢的字段進行升序或者降序的排序(查)
- 需根據主鍵查詢記錄是否存在(查)
- 需根據唯一性字段查詢記錄是否存在(查)
- 需根據賬號和密碼字段提供登錄操作(查)
- 需要支持外鍵
- 需要根據主鍵查詢每一個唯一性字段
- 需要根據主鍵查詢所有的唯一性字段
- 需要根據主鍵查詢每一個非空字段
- 需要根據主鍵查詢所有非空字段
- 需要根據主鍵查詢所有唯一性且非空字段
- 需支持一對一,一對多,多對一,多對多的級聯查詢
- 需支持集合的過濾和子查詢
- 需支持動態插入和動態更新屬性
- 支持接口
- 需支持解綁操作,並涉及刪除
- 需支持狀態刪除,並非真正的刪除
- 需放置在對應的package目錄(service)
- 需導入用到的Java類
- 需要類命名需遵循Java命名規範
- 字段命名需遵循Java命名規範
- 需保存Java Bean(增)
- 需一次性批量保存Java Bean(增)
- 需更新Java Bean,可以選擇特定字段不保存(改),需增加int類型返回值的處理
- 需一次性批量更新Java Bean(增)
- 需根據主鍵更新特定的字段(改)
- 需根據主鍵刪除Java Bean(刪),需增加int類型返回值
- 需一次性批量刪除Java Bean(刪)
- 需根據唯一性字段刪除Java Bean(刪)
- 需據根主鍵查詢Java Bean(查)
- 需根據唯一性字段查詢Java Bean(查)
- 需根據模糊查詢字段查詢記錄總數(查)
- 需根據模糊查詢字段查詢記錄列表(查)
- 需根據精確查詢字段查詢記錄總數(查)
- 需根據精確查詢字段查詢記錄列表(查)
- 模糊查詢需要根據查詢的字段進行升序或者降序的排序(查)
- 精確查詢需要根據查詢的字段進行升序或者降序的排序(查)
- 需根據主鍵查詢記錄是否存在(查)
- 需根據唯一性字段查詢記錄是否存在(查)
- 在進行增刪查改操作前,需根據字段校驗規則校驗數據有效性,出錯則拋出異常
- 根據校驗結果和執行結果,返回正確的返回值,並配置返回值對應的信息
- 操作失敗後,需要檢查是否字段是否唯一
- 需根據賬號和密碼字段提供登錄操作(查)
- 接口返回值類型統一爲boolean
- 接口都需拋出Exception,Action可以通過Exception的子類,子類增加獲取返回碼,提示信息
- 返回值規則:0 - 校驗通過; 999 - 操作失敗,1000 - 字段不能爲null;1001 - 字段不能爲空 (null或者空字符串);1002 - 字段長度超限;1003 - 字段輸入格式不正確 ;1004 - 查詢頁大小不正確 1005 - 記錄已存在 1006 - 記錄不存在, 無法更新 1007 - 沒有更新任何記錄 1008 - 沒有刪除任何記錄 1009 - 記錄不存在,無法刪除
- 需要支持外鍵
- 需檢驗外鍵非空性
- 需檢驗外鍵存在性
- 需對非空字符串字段進行校驗
- 需要根據主鍵查詢每一個唯一性字
- 需要根據主鍵查詢每一個唯一性字
- 需要根據主鍵查詢所有的唯一性字
- 需要根據主鍵查詢每一個非空字段
- 需要根據主鍵查詢所有非空字段
- 需要根據主鍵查詢所有唯一性且非空字段
- 需支持一對一,一對多,多對一,多對多的級聯查詢
- 支持接口
-
- 需支持集合的過濾和子查詢
- 需放置在對應的package目錄(action)
- 需導入用到的Java類
- 需要類命名需遵循Java命名規範
- 字段命名需遵循Java命名規範
- 需保存Java Bean(增)
- 需保存Java Bean,可以選擇特定字段不保存(改)
- 需根據主鍵更新特定的字段(改)
- 需根據主鍵刪除Java Bean(刪)
- 需根據唯一性字段刪除Java Bean(刪)
- 需據根主鍵查詢Java Bean(查)
- 需根據唯一性字段查詢Java Bean(查)
- 需根據模糊查詢字段查詢記錄總數(查)
- 需根據模糊查詢字段查詢記錄列表(查)
- 需根據精確查詢字段查詢記錄總數(查)
- 需根據精確查詢字段查詢記錄列表(查)
- 模糊查詢需要根據查詢的字段進行升序或者降序的排序(查)
- 精確查詢需要根據查詢的字段進行升序或者降序的排序(查)
- 需根據主鍵查詢記錄是否存在(查)
- 需根據唯一性字段查詢記錄是否存在(查)
- 需根據操作結果,設置返回碼、成功與否標誌、提示信息以及查詢的數據結果
- 需捕獲異常,獲取錯誤碼和提示信息,並log對應的錯誤信息
- 需根據賬號和密碼字段提供登錄操作,並保存到回話Session
- 根據規則配置Action是否需要檢查是否已經登錄(查)
- 需生成對應的struts配置文件
- 需要支持外鍵
- 需要根據主鍵查詢每一個唯一性字段
- 需要根據主鍵查詢所有的唯一性字段
- 需要根據主鍵查詢每一個非空字段
- 需要根據主鍵查詢所有非空字段
- 需要根據主鍵查詢所有唯一性且非空字段
- 需提供管理員用戶密碼功能,管理員重置密碼後,通過郵件告知用戶新的密碼
- 需提供用戶找回密碼功能,用戶申請找回密碼後,通過郵箱獲取檢驗碼,用戶輸入匹配的檢驗碼完成找回密碼
- 需提供管理員用戶密碼功能,管理員重置密碼後,通過手機告知用戶新的密碼
- 需提供用戶找回密碼功能,用戶申請找回密碼後,通過手機獲取檢驗碼,用戶輸入匹配的檢驗碼完成找回密碼
- 需提供文件上傳功能
- 需提供文件下載功能
- 需生成涉及數據庫操作的的單元測試Case
- 需控制不返回敏感信息
- 需支持防止SQL注入
- 生成spring配置文件
- 生成struts配置文件
- 生成web配置文件
由於前臺代碼工作還沒開始,所以有很多細節還不清楚,所以下面的列表比較粗略,後面會逐步細化。
前臺代碼:頁面:- 需生成一個列表頁面,提供模糊字段查詢數據,列表顯示所有字段的數據,提供增加、刪除、編輯按鈕,並實現刪除功能
- 需生成一個增加頁面,提供所有字段輸入,提供保存和取消按鈕
- 需生成一個編輯頁面,提供所有字段輸入,提供保存和取消按鈕
- 頁面內的字段需配置ID屬性,ID命名需遵循Java命名規範: lowerClassName.lowerFieldName,按鈕ID:btn.operation
- 每個字段都應對應一個校驗提示信息,校驗結果不同,顯示樣式不一樣
- 根據校驗結果,提供動態改動字段輸入框狀態的樣式
- 一個Action對應一個JavaScript源文件
- 需放置在對應的目錄
- 需導入用到的JavaScript插件,如JQuery
- 文件命名保持與table命名一致
- ID命名需遵循Java命名規範: lowerClassName.lowerFieldName
- 每個Action需要有對應的JavaScript函數,一一對應
- 每個Action對應的JavaScript函數內需根據ID自動獲取頁面字段的值
- JavaScript源文件中需生成每個字段的校驗函數, 唯一性的字段,需先查詢後保證不重複
- 每個Action對應的JavaScript函數內需根據ID自動獲取頁面字段的值後,需校驗每個字段
- 根據校驗結果動態改動輸入框狀態樣式,提示信息及提示信息樣式
- 通過校驗後,每個Action對應的JavaScript函數內需AJAX請求後臺Action,根據後臺返回信息,使用彈出款提示用戶操作結果