R1.4.0 值得一提的新特性
#17 WebSocket 支持
ActFramework 终于支持 WebSocket 了
聊天室应用:
@WsAction("msg")
public void onMessage(String message, WebSocketContext context) {
context.sendToPeers(message);
}
Echo 应用:
@WsAction("echo")
public void onMessage(String message, WebSocketContext context) {
context.sendToSelf(message);
}
关于更详细的 websocket 支持, 可参见 http://actframework.org/doc/websocket.md
#227 支持控制台颜色输出
通过配置 logback.xml
文件 (例子在这里) ActFramework 可以输出带颜色的 log 信息:
#228 生成 ASCII 字符的 favicon
如果 ActFramework 在 /resources/asset/
或 /resources/asset/img
或 /resources/asset/image
目录下找到 favicon.png
或 favicon.ico
文件,将会在应用启动的时候打印 ASCII 版的 favicon,例如:
#228 将带有 @Stateless
注解的类加入到应用的 singleton 注册表中
如果一个类上标注有 @Stateless
注解,ActFramework 在启动的时候会将该类加入 Singleton 注册表里
#212 简化 header session mapper 的配置
有时候没法依赖 cookie 来保存 session 数据, 这个时候我们需要将 session 数据映射到其他方式,比如 http header 里。在以前的版本中使用 header session mapper 不是特别方便:
- 实现 header session mapper 类
package com.mycomp;
public class MyAppSessionMapper extends act.util.SessionMapper.HeaderSessionMapper {
public SessionMapper() {
super("X-MyApp-");
}
}
- 在 app properties 文件中加入:
session.mapper=com.mycomp.MyAppSessionMapper
R1.4.0 简化了上面的步骤,现在我们只需要在配置文件中加入下面一行即可:
session.mapper.header.prefix=X-MyApp-
#226 支持定制 banner 文字
如果框架在 /resources/
找到一个名为 act_banner.txt
的文件,将会使用该文件的内容来作为应用启动时的 banner text 输出,例如
#219 支持 Singleton 的延迟加载
现在开发人员可以使用 @Lazy
注解和 @Singleton
注解一起表示一个 Singleton 类,但是不需要在应用启动过程之加载到 Singleton 注册表中,而是当第一次被使用的时候实例化并加载到 Singleton 注册表, 例如:
@Lazy
@Singleton
public class MySingletonClass {
}
点击 https://github.com/actframework/actframework/milestone/7?closed=1 查看 R1.4.0 的 issue 完整清单