rose框架學習總結
rose框架學習總結
rose框架為paoding rose框架
具體可見https://code.google.com/p/paoding-rose/
1 對rose框架的整體認識
1.1B/S web開發
我們所做的web開發是基於HTTP的應用服務開發,主要由兩部分組成:瀏覽器+服務端
大致流程為:瀏覽器向服務端傳送HTTP請求,獲取伺服器IP,建立TCP連線,傳送請求
伺服器偵聽請求,偵聽到請求,建立起連線,處理然後返回響應訊息
1.2Rose框架
初始化:
Tomcat啟動時,會讀取配置檔案,進行服務的初始化工作
而對於rose,會進行兩個主要的初始化工作:
一個是:對於各個要使用的Bean進行例項化。包括controller、dao等
另一個是:構建匹配樹。這是rose解析使用者請求並進行匹配處理的基礎
rose框架裡面包含的思想:
資源封裝:對底層資源的封裝,開發者不用考慮servlet實現,doget\dopost,資料庫連線等底層實現,可以更加專注於業務邏輯的分析和處理
分層設計:rose框架本身就包含了分層的概念,資源封裝,通過提供介面
我們在開發的時候也應該注意分層的概念,合理設計。頁面,controller,service,jade層間設計與關聯
匹配機制:rose匹配樹,實際為所定義的controller URL樹。客戶請求及響應實為與相關的controller間的互動
Rose執行機制:
Rose解析客戶的請求地址,從匹配樹中尋找匹配的controller
尋找到相匹配的controller,如若存在攔截器註解,則還會先進行攔截器的處理,然後再傳給controller
如果在匹配樹中無法再到相匹配的controller,則會返回404的錯誤
IOC、依賴注入概念:
基本概念:程式執行過程中,當需要用到相關的物件時,動態的注入該物件,來執行物件方法,改變物件屬性。
具體怎麼例項化這個物件,物件生命週期的管理等,均由框架來自動管理
而Rose提供了非常便利的@ 註解使用方式,讓開發者可以方便的使用相關的類及類方法
這裡的IOC概念,我覺得其實是對java垃圾回收的延伸
因為有垃圾回收的特性,才能夠使物件生命週期的自動管理得以實現
小結:Rose框架本身維護著一個主‘程式/執行緒’,在初始化階段會例項化相關的物件。
然後執行過程通過對客戶端請求地址的解析,呼叫相匹配的物件方法進行處理,而這部分的實現程式碼則由框架進行封裝維護
開發者只需要根據業務開發實現相關功能的類即可(封裝)
2 基於rose框架的開發
2.1web開發------web服務端開發
我們所開發的web服務主要是服務端的服務,其包括三個部分:
Views:使用者提交請求,同時呈現響應資訊:jsp
業務邏輯處理:controller、service
資料持久化:mysql、jade
Rose框架其實是一套規則,我們就是利用這套規則,來進行快速高效的web服務開發
(1)controller bean的定義規則:
1需在controllers package下進行controller類的定義
2controller類都需要以controller為字尾
(2)資料持久化:
資料庫的操作採用rose jade
使用規則:
1定義資料庫操作的DAO介面,並使用@Dao標註
2使用@SQL標註並定義相關的sql語句作為該註解的值
3定義相關的sql方法介面作為呼叫實體
與匹配相關的問題
rose在執行過程中,客戶請求處理首要過程就是進行對請求地址的解析
在開發中常出現匹配異常:
可以注意是否定義相對應的get 或 post的controller方法
是否定義與url相對應的controller或者方法
開發過程:
通過使用@Path @Get @Post可以對controller類的url地址進行設定
@get @post則可以配置相關get post方法
注意引數獲取的對應url地址
2.2 controller的深入
對於互動,即在與頁面端的資料傳輸中:
Controller是在方法中通過@Param 引數的方式來獲取提交的資料,或者可以在方法中通過getParameter的方法來獲取
頁面端向後端傳遞資料的方式有兩種:
1在對映地址上直接傳遞資料
2可以通過表單等方式傳遞到對應變數中,如果傳遞的是bean資料,頁面傳遞的資料會自動封裝到bean裡
Controller要返回相關的資料,則通過Invocation變數進行傳輸
可以採用addModel和setAuttribute的方法
Controller功能分析:
根據rose匹配執行的機制,我們知道,controller其實是直接與使用者進行互動的
獲取使用者提交的資料,同時返回響應的資訊
因此,在設計controller bean的時候則要符合業務邏輯處理,即controller間的職責需要明確 ,一個controller對應一個業務處理塊
Controller主要是獲取頁面提交資料,返回響應資訊,作為一個資訊的中轉站
業務邏輯的處理可以由service層進行處理,並由controller進行呼叫
定義各個業務邏輯處理的service類,具體的編寫規則:
1定義service類介面
2定義service類的實現
3在applicationContext XML檔案配置service bean,包括名字,實現類地址
4在要運用的類bean上標註@Autowired註解,則rose框架會自動例項化注入該物件
other question
對於資料庫的操作,要注意sql語句的設計
不要把業務邏輯的處理帶到sql語句中
Sql語句要原子化,業務處理由負責業務邏輯處理的service層進行考慮
相關文章
- paoding-rose框架的學習ROS框架
- Dubbo框架學習總結框架
- GoWeb框架Gin學習總結GoWeb框架
- Java Executor 框架學習總結Java框架
- Paoding Rose學習(一)ROS
- GoWeb框架Gin學習總結proto檔案GoWeb框架
- 學習總結
- mysqlimport學習總結MySqlImport
- Maven學習總結Maven
- MyBatis 學習總結MyBatis
- awk 學習總結
- JNI 學習總結
- tkinter學習總結
- SVG學習總結SVG
- vue學習總結Vue
- WorkFlow學習總結
- HTML學習總結HTML
- Mybatis學習總結MyBatis
- Kafka 總結學習Kafka
- Typescript學習總結TypeScript
- 【TS】學習總結
- lua 學習總結
- vue 學習總結Vue
- HSF學習總結
- ElasticSearch 學習總結Elasticsearch
- BOM學習總結
- JavaWeb學習總結JavaWeb
- Storm學習總結ORM
- redis學習總結Redis
- JVM學習總結JVM
- Oracle學習總結Oracle
- Ajax學習總結
- WebRTC學習總結Web
- spark 學習總結Spark
- pandas 學習總結
- react學習總結React
- GCD 學習總結GC
- DOM學習總結