ActFramework 1.8.31 發佈 – 新年大禮包

  • 2020 年 2 月 11 日
  • 筆記

1. ActFramework 核心框架

ActFramework 是一款非輕量級 Java Web 應用框架. 作為著名的 PlayFramework 1.x 的繼任者, ActFramework 具有功能豐富, 高性能和良好的開發時支持的特點.

2020 的第一個版本 Act-1.8.31 給大家帶來了以下值得注意的改變:

  • #1247 參數綁定 – 支持使用 @DefaultValue("now") 來表達默認日期格式對象設置為當前日期時間: @GetAction("date") public Date foo(@DefaultValue("now") Date date) {return date;}
  • #1254 當處理請求過程中發生 IllegalArgumentException 時打印錯誤堆棧後再返回 400 Bad Request. – 以前的版本不會打印 IllegalArgumentException 的錯誤堆棧
  • #1256 JSON 格式的錯誤消息沒有正確轉義. 以前的版本會出現這樣的問題: {"ts":1575416334641,"message":"Invalid format: "06 Dec 2019""} 新版本的輸出如下: {"ts":1575416334641,"message":"Invalid format: "06 Dec 2019""}
  • #1257 API 文檔 – 基本類型數組類型的示例數據錯誤. 以前的版本:
    • 以前的版本:
    • 修復後:
  • #1258 微信請求 XML body 綁定到 JSONObject 錯誤. 這個問題是 Crosslee 提出的, 詳情參見: https://github.com/actframework/actframework/issues/1258
  • #1259 API 文檔 – JPA Entity SQL Date 數據類型轉換錯誤. 這個問題是 jiankia 提出的. 詳情參見: https://github.com/actframework/actframework/issues/1259
  • #1260 IE9 的奇特錯誤 – 由 flyingbeecd 提出. 詳情參見: https://github.com/actframework/actframework/issues/1260
  • #1261 採用 html-table 格式輸出字串列表的問題.
    • 以前的版本:
    • 修復後:
  • #1262 對 JSON Path 的支持.
    • 輸出數據:
    • 採用 JSON Path 輸出
  • #1266 命令行幫助 – 顯示命令快捷方式
    • 以前的版本:
    • 新版本:
  • #1270 提供生成示例數據的 API. 對於下面的代碼: public static class Address { public String street; public String suburb; public int postcode; } public static class User { public String firstName; public String lastName; public String email; public Address address; } @GetAction("samples/user") public User getSampleUser() { return SampleData.generate(User.class); } 訪問 “/samples/user` 的結果:
  • 依賴升級:
    • osgl-tool 升級到 1.23.0
    • osgl-genie 升級到 1.13.0
    • osgl-http 升級到 1.13.0
    • osgl-mvc 升級到 1.13.0

更多 ActFramework 核心框架 1.8.31 的更新, 參見 CHANGELOG

2. 安全插件 act-aaa-1.7.3

act-aaa 是專門為 ActFramework 設計的安全插件, 基於 osgl-aaa 安全庫. 在 1.7.3 版裏面我們帶來了一下更新:

  • UserBase model 中增加了 grantPrivilege(int)grantPrivilege(Privilege) 方法

3. Beetl 模板框架插件 act-beetl-1.7.1

act-beetlbeetl 模板框架集成到 ActFramework 中. act-beetl-1.7.1 版更新如下:

  • 升級 act 到 1.8.31
  • 升級 beetl 到 3.0.16.RELEASE

4. BeetlSQL 數據訪問插件 act-beetlsql-1.8.1

act-beetlsqlbeetlsql 數據庫訪問組件集成進 ActFramework 中. act-beetlsql-1.8.1 更新如下:

  • 升級 act 到 1.8.31
  • 升級 beetlsql 到 2.12.17.RELEASE

5. Excel 模板插件 act-excel-1.8.1

act-excel 依賴於 osgl-exceljxls 分別為 ActFramework 應用提供默認 Excel 數據輸出和基於模板的 Excel 數據輸出. act-excel-1.8.1 版的更新:

  • 升級 act 到 1.8.31
  • 升級 osgl-excel 到 1.9.0

關於 act-excel 的使用可以參見 response-type 示例項目

6. MongoDB 數據訪問插件 act-morphia-1.8.2

act-morphia 依賴於 morphia 為 ActFramework 應用提供 MongoDB 數據庫訪問能力. act-morphia-1.8.2 的更新:

  • 升級 act 到 1.8.31
  • MorphiaUserBase model 提供 grantPrivilege – 該類為使用 Mongodb 的應用提供 act-aaa 的用戶基類

7. OSGL-Tool 通用工具類庫 osgl-tool-1.23.0

osgl-tool 是一個類似 hutool 的 Java 通用工具類庫. osgl-1.23.0 的更新:

  • #229 為 S 工具提供 pluralize(String)singularize(String) 方法, 用於在英文語言中轉換名詞的單複數. 該方法依託於 jboss 的 Inflector
  • MIME Types – 增加 msa=application/x-ms-application – 增強 IE 支持
  • #227 ResultSetDataConverter 增強
  • #226 XML 到 JSON 轉換 – 修復大數字引起異常的問題
  • #225 XML 到 JSON 轉換 – 處理 [CDATA 內容 – 支持微信請求 body
  • #224 轉換器框架 – 修復 java.sql.Date 轉換失敗問題

8. Genie 依賴注入庫 osgl-genie-1.13.0

genie 是 JSR 330 依賴注入標準的實現. genie-1.13.0 的更新:

  • #56 簡化 Enum 類型容器的注入. 假設有下面的 enum 定義: public enum Color {RED, GREEN, BLUE}
    • 以前版本: public class Foo { @Inject @TypeOf private List<Color> colorList; @Inject @TypeOf @MapKey("name") private Map<String, Color> colorLookup; }
    • 新版本: public class Foo { @Inject private List<Color> colorList; @Inject private Map<String, Color> colorLookup; }
  • #55 ElementType.BEAN 支持 Enum 類型的轉換
  • #54 MapLoader 支持非 String 類型 key 的加載, 對於上面的例子, 現在可以這樣寫也不會出錯了: public class Foo { @Inject private List<Color> colorList; @Inject private Map<Keyword, Color> colorLookup; // 這裡 Map 的 key 可以是非字串了 }

9. 其他 osgl 庫更新

新年寄語

回顧 2019, ActFramework 僅核心框架部分一共帶來了 194 項更新 (包括錯誤修復和增強), 加上各種插件以及 OSGL 類庫, 估計總共更新項目接近甚至超過 300 項.

展望 2020, 老碼農會一如既往努力工作, 為 Java 開發人員提供優質的 Web 開發框架和通用類庫. 對於 ActFramework 本身的發展, 老碼農的大致路線為:

  • 1.9 – 提供全新的數據庫訪問框架 – 2020 年 4 月
  • 2.0 – 棄用 Java7, 提供純異步請求處理功能 – 2020 年 8 月
  • 2.1 – 升級 act-asm 提供 Java 13 支持 – 2020 年 12 月

希望老朋友們一如既往支持 ActFramework 以及 OSGL 通用庫的發展. 也希望有更多的新朋友加入 ActFramework 社區, 我們共同發展. ActFramework 的聯繫方式: