OSCHina技術導向:Java輕量web開發框架——JFinal

JFinal 是基於 Java 語言的極速 WEB + ORM 框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言全部優點的同時再擁有ruby、python、php等動態語言的開發效率!爲您節約更多時間,去陪戀人、家人和朋友 :)php

JFinal有以下主要特色:

  • MVC架構,設計精巧,使用簡單java

  • 遵循COC原則,零配置,無xmlpython

  • 首創Db + Record模式,靈活便利git

  • ActiveRecord支持,使數據庫開發極致快速web

  • 自動加載修改後的java文件,開發過程當中無需重啓web server數據庫

  • AOP支持,攔截器配置靈活,功能強大windows

  • Plugin體系結構,擴展性強後端

  • 多視圖支持,支持FreeMarker、JSP、Velocityruby

  • 強大的Validator後端校驗功能微信

  • 功能齊全,擁有struts2的絕大部分功能

  • 體積小僅218K,且無第三方依賴

如下是JFinal實現Blog管理的示例:

1:控制器(支持FreeMarker、JSP、Velocity、JSON等等以及自定義視圖渲染)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@Before (BlogInterceptor. class )
public  class  BlogController  extends  Controller {
     public  void  index() {
         setAttr( "blogList" , Blog.me.find( "select * from blog" ));
     }
 
     public  void  add() {
     }
     
     @Before (BlogValidator. class )
     public  void  save() {
         getModel(Blog. class ).save();
     }
     
     public  void  edit() {
         setAttr( "blog" , Blog.me.findById(getParaToInt()));
     }
     
     @Before (BlogValidator. class )
     public  void  update() {
         getModel(Blog. class ).update();
     }
     
     public  void  delete() {
         Blog.me.deleteById(getParaToInt());
     }
}

2:Model(無xml、無annotation、無attribute、無getter、無setter、new Blog()這行代碼也不是必須)

?
1
2
3
public  class  Blog  extends  Model {
     public  static  final  Blog me =  new  Blog();
}

3:Validator(API引導式校驗,比xml校驗方便N倍,有代碼檢查不易出錯)

?
1
2
3
4
5
6
7
8
9
10
public  class  BlogValidator  extends  Validator {
     protected  void  validate(Controller controller) {
         validateRequiredString( "blog.title" "titleMsg" "請輸入Blog標題!" );
         validateRequiredString( "blog.content" "contentMsg" "請輸入Blog內容!" );
     }
     
     protected  void  handleError(Controller controller) {
         controller.keepModel(Blog. class );
     }
}

 4:攔截器(在此demo中僅爲示例,本demo不須要此攔截器)

?
1
2
3
4
5
6
7
public  class  BlogInterceptor  implements  Interceptor {
     public  void  intercept(ActionInvocation ai) {
         System.out.println( "Before invoking "  + ai.getActionKey());
         ai.invoke();
         System.out.println( "After invoking "  + ai.getActionKey());
     }
}

JFinal官方微信歡迎您的加入:

JFinal 是基於 Java 語言的極速 WEB + ORM 框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言全部優點的同時再擁...
 
 
最近提交:
 
相關文章
相關標籤/搜索