下面是一些經常使用的連接,供你們使用: java
GIT地址(必須是OSC家的):https://git.oschina.net/tinyframework/tiny
問題報告:https://git.oschina.net/tinyframework/tiny/issues
git
官方網站:http://www.tinygroup.org 程序員
更多內容,請看本人博客。不同的內容,同樣的精彩! web
前面講了Tiny快速入門之服務開發和Tiny快速入門之Web界面快速開發實踐,也就是說開發服務和界面都沒有問題了,很明顯要作一個完整的系統仍是不夠的,所以確定有控制層,才能夠把整個過程打通。 app
控制層充當着界面和服務之間協做的角色。控制器從界面層接收用戶輸入的信息,而後調用服務來執行特定的處理,並把最終的結果回傳給界面層進行渲染。 框架
Tiny框架中控制層的寫法能夠有許多種: 網站
集成Struts等方案,這裏再也不敘述,僅介紹經過Tiny框架來實現的方式: this
@Controller() public class HelloAction implements WebContextAware{ private WebContext webContext; public void setContext(WebContext webContext) { this.webContext = webContext; } @RequestMapping(value={"/helloByMvc.do"}) @View(value="/helloworld/helloresult.page") public void sayHelloMethod(String name) { if (name == null) { name = "world"; } webContext.put("result", String.format("Hello, %s", name)); } }
解釋 spa
@Controller()表示這個類是個控制層的類。 @View(value="/helloworld/helloresult.page")表示執行完畢以後轉到/helloworld/helloresult.page頁面進行渲染。
WebContext,也就是Web上下文,是Tiny Web框架中的一個重要類,用於在上面放置各類數據。
你能夠把它理解成像Map同樣的東西,能夠不斷的往裏面塞東西,塞進去的,在展示層就是可見的。 .net
固然,對於上面這麼簡單的類子,其實不用實現WebContextAware接口,這個時候的寫法以下:
@Controller() public class HelloAction { @ResultKey(value = "result") @RequestMapping(value={"/helloByMvc.do"}) @View(value="/helloworld/helloresult.page") public String sayHelloMethod(String name) { if (name == null) { name = "world"; } return String.format("Hello, %s", name); } }相對來講,比上面一種寫法更簡單,可是惟一的限制就是隻能傳回一個對象了。
@ResultKey(value= "users") @RequestMapping(value={"/crud/service/tinydb/list.page"}) public List<Bean> queryUsers(@ServiceParameter(name = "TUser") Bean TUser)throws Exception { Bean[] beans = operator.getBeans(TUser); if (beans != null) { return Arrays.asList(beans); } return null; }固然,入參也不必定必須是簡單類型,對象也是容許的。
經過註解方式,能夠方便的在普通的Java類中定義控制層的處理邏輯,步驟:
問題:若是控制層處理方法須要的是一個對象,若是辦呢?
固然,HelloWorld的功能太簡單了,它甚至能夠直接在控制層就完成了。
雖然這麼作從計算機邏輯上來講是沒有問題的,也會給出正確的結果,可是實際應用當中,這麼作就是有問題的,由於業務邏輯是不該該在控制層完成的。
因此,上面的作法是錯誤的,也是不推薦的。
因此正確的是編寫一個業務流:
上面編寫了流程處理,而後就能夠編寫寫頁面流了:
固然,它也不必定都是一條線的,也能夠是複雜的,好比:
頁面流這裏只要調用一個服務就能夠,因爲調用完服務,服務的結果會自動放在上下文當中,所以默認是不須要進行任何附加處理的。
經過頁面流的方式,有很是清晰的頁面處理邏輯展現,更容易理解業務的處理過程。因爲不用寫程序,沒必要擔憂程序員在裏面添加一些危險代碼(在某些特殊行業這個是要嚴格防止的),流程即文檔,能夠快速生成文檔。
Tiny框架中已經原生有了許多頁面流組件,固然也支持激情四射的你自定義添加組件,這個會涉及到流程組件開發方面的問題,不在這一節當中詳細說明了。
第一步:選擇嚮導
第二步選擇要生成的文檔
而後,就是看生成的文檔了
技術經理徹底能夠經過看文檔就知道程序的執行結果及程序員完成的狀況。
好像有點走題哦,下次再重點介紹流程編排相關的事情。
Tiny框架的控制層,提供了對象自動組裝、數據校驗、代碼方式編寫控制層、流程編排方式編寫控制層等靈活多樣的編寫方式。真正把程序員從繁雜的工做當中解脫出來,只作本身須要作的事情。
至此,Tiny快速入門的主要四節內容已經講了三節,回顧一下就是:
明天將編寫Tiny快速入門之流程開發,敬請期待