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` 的結果:
依賴升級:
更多 ActFramework 核心框架 1.8.31 的更新, 參見 CHANGELOG
act-aaa 是專門為 ActFramework 設計的安全插件, 基於 osgl-aaa 安全庫. 在 1.7.3 版裡面我們帶來了一下更新:
UserBase
model 中增加了 grantPrivilege(int)
和 grantPrivilege(Privilege)
方法act-beetl 將 beetl 模板框架集成到 ActFramework 中. act-beetl-1.7.1 版更新如下:
act-beetlsql 將 beetlsql 資料庫訪問組件集成進 ActFramework 中. act-beetlsql-1.8.1 更新如下:
act-excel 依賴於 osgl-excel 和 jxls 分別為 ActFramework 應用提供默認 Excel 數據輸出和基於模板的 Excel 數據輸出. act-excel-1.8.1 版的更新:
關於 act-excel 的使用可以參見 response-type 示例項目
act-morphia 依賴於 morphia 為 ActFramework 應用提供 MongoDB 資料庫訪問能力. act-morphia-1.8.2 的更新:
MorphiaUserBase
model 提供 grantPrivilege
- 該類為使用 Mongodb 的應用提供 act-aaa 的用戶基類osgl-tool 是一個類似 hutool 的 Java 通用工具類庫. osgl-1.23.0 的更新:
pluralize(String)
和 singularize(String)
方法, 用於在英文語言中轉換名詞的單複數. 該方法依託於 jboss 的 Inflector
msa=application/x-ms-application
- 增強 IE 支持[CDATA
內容 - 支持微信請求 bodyjava.sql.Date
轉換失敗問題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 可以是非字串了
}
回顧 2019, ActFramework 僅核心框架部分一共帶來了 194 項更新 (包括錯誤修復和增強), 加上各種插件以及 OSGL 類庫, 估計總共更新項目接近甚至超過 300 項.
展望 2020, 老碼農會一如既往努力工作, 為 Java 開發人員提供優質的 Web 開發框架和通用類庫. 對於 ActFramework 本身的發展, 老碼農的大致路線為:
希望老朋友們一如既往支持 ActFramework 以及 OSGL 通用庫的發展. 也希望有更多的新朋友加入 ActFramework 社區, 我們共同發展. ActFramework 的聯繫方式:
最後祝大家新年新氣象.
最重要的事情: 2020 - 1024 = 996 的意思是 2020 年不搞 IT 就會 996!
[admin
]