Snow框架是一種爲了實現“無配置化”項目運作框架。
該框架綁定了一些東西:
1、頁面只能使用freemaker
2、持久層只能使用hibernate
3、容器管理使用Google Guice
還支持aspectj的使用。不過使用了aspectj時,必須使用其他的打包或者編譯工具,如meven和ant等工具。不能在eclipse裏直接編譯。Snow網站上有相關的結構圖和一些簡單的例子。
使用Snow框架開發web項目:
1、環境:eclipse+tomcat+meven+mysql
2、每個使用Snow的項目,都有一個默認的Module。目錄結構應該是這樣:
項目+++++
--------src
-----WEB-INF
-------lib
------snow
--------mods(Module的父目錄)
--------demo(默認的Module)
----------parts (存放相關頁面)
---------application.properties(數據庫的配置和默認Module都在這裏配置,比如snow.defaultWebModuleName = demo)
-------web.xml
3、snow框架方法配置主要通過註解的方式來配置的,不通過配置文件。方法的配置主要有兩種方法:
(1)@WebAction
通過方法名來調用
(2)、@WebModel()
通過路徑匹配,主要有以下幾種方式:
@WebModel(startWith="/home")表示路徑以項目下的/home開始的路徑的請求都會執行這個方法;
@WebModel(matchs="/home") 表示請求的路徑爲/home才執行該方法
注:路徑的表示可使用正則表達式
4、前後臺數據的交互
也大致分爲兩種:
在@WebAction中,方法可以通過@WebParam("name")來獲取前臺名爲name的變量,要返回值到前臺,則只需返回一個Map即可,前臺通過m.name即可獲取
在@WebModel中,方法可以通過和上面一樣的方法來獲取變量,也可以通過請求的路徑來獲取變量,如: 在 @WebModel(matchs="/home")配置下的方 法@WebPath(1) String name,則表示該路徑的home後的第一個“/”到下一個“/”之間的值,因爲 @WebModel方法參數可以直接使用一個Map<String, Object> m的變量,這個 變量是前後臺公用的,如需返回值時只需將要返回的值放在這個Map裏即可。
注:在Snow框架裏的Map只能使用<String,?>這種類型。