JFinal 1.1.2 發布,JAVA 極速WEB + ORM 框架

jopen 12年前發布 | 18K 次閱讀 ORM

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

JFinal有如下主要特點:

  • MVC架構,設計精巧,使用簡單
  • 遵循COC原則,零配置,無xml
  • ActiveRecord支持,使數據庫開發極致快速
  • 自動加載修改后的java文件,開發過程中無需重啟web server
  • AOP支持,攔截器配置靈活,功能強大
  • Plugin體系結構,擴展性強
  • 多視圖支持,支持FreeMarker、JSP、Velocity
  • 強大的Validator后端校驗功能
  • 功能齊全,擁有struts2的絕大部分功能
  • 體積小僅198K,且無第三方依賴

以下是JFinal實現Blog管理的代碼:

/**

  • BlogController */ public class BlogController extends Controller {

     public void index() {
             setAttr("blogList", Blog.dao.find("select * from blog order by id asc"));
     }
    
     public void add() {
     }
    
     @Before(BlogValidator.class)
     public void save() {
             getModel(Blog.class).save();
     }
    
     public void edit() {
             setAttr("blog", Blog.dao.findById(getParaToInt()));
     }
    
     @Before(BlogValidator.class)
     public void update() {
             getModel(Blog.class).update();
     }
    
     public void delete() {
             Blog.dao.deleteById(getParaToInt());
     }
    

    }

/**

  • Blog model. */ public class Blog extends Model<Blog> {
     public static final Blog dao = new Blog();
    
    }

/**

  • BlogValidator. */ 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);
     }
    

    }</pre>

    JFinal 1.1.2 版比較重要的變化是重新設計了 json 模塊、集成了JDBC連接池、監控組件 Druid。全新設計的 json 模塊代碼量壓縮至極致,類文件由原來的四個減至一個,并且支持多級嵌套轉換。除此之外 JFinal 1.1.2 其它變化如下:

    Version 1.1.2:

    • Controller 添加 getParaToLong(String) 系列方法
    • JspRender.handePage(...) 增加對 list的處理
    • Model 所有 return this 的方法返回值強制轉化泛型
    • 改進SessionInViewInterceptor,采用 JFinalSesion以便支持 get(String)以外的功能
    • 改進 Controller 的 getParaToInt 系列與 getParaToLong 系列方法,使字母"N"與"n"代表負號,以便在 urlParaSeparator 為 "-" 時支持負數, http://abc.com/search/2-N8-5 請求的 getParaToInt(1) 值為 -8
    • 將默認 urlParaSeparator 由 "_" 改成了 "-", 有利于 seo, 使用 "_" 值的原有項目可以通過 constants.urlParaSeparator("_") 來升級 jfinal
    • Controller.getParas 被 Deprecated, 啟用與 getParaNames 相對應的 getParaValues
    • FreeMarkerRender中的 config.setNumberFormat("#") 改為了 config.setNumberFormat("#0.#####")
    • 去掉了 JFinal.initOreillyCos() 中的自動創建上傳目錄相關代碼
    • 去掉了 ActiveRecordPlugin中的 addTableMapping(...) 方法
    • 重新設計 json 模塊
    • 添加 DruidPlugin (Druid)
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!