ActFramework 1.7.0 - 1.8.1,高性能 Java Web 框架 - 开源中国社区
ActFramework 1.7.0 - 1.8.1,高性能 Java Web 框架
罗格林 2018年03月12日

ActFramework 1.7.0 - 1.8.1,高性能 Java Web 框架

罗格林 罗格林 发布于2018年03月12日 收藏 12

【腾讯云】如何快速搭建微信小程序?>>>  

没有及时发布新闻,真是不好意思。今天打个新闻批发,把 Act 1.7.0 到 1.8.1 中值得注意的更新给大家汇报一下。

Act-1.8.1 - 2018-03-11

  • 支持 Request Forward

@GetAction("shortcut/{shortUrl}") 
public void shortUrlHandler(String shortUrl, UrlMapper urlMapper) {
   String longUrl = urlMapper.get(shortUrl);
   Controller.Util.forward(longUrl);
}

forward 和 redirect 的区别:forward 不会发回 303 给浏览器,而是在应用内部直接分派到相关请求响应器。注意:forward 只支持 HTTP GET 请求

更多 act-1.8.1 的内容

Act-1.8.0 - 2018-03-04

  • 实现了新的响应输出模型,大大优化响应输出的内存,对大字节内容输出性能上有少量提升

  • 项目布局支持 gradle-groovy

  • CacheService 注入支持 @Named

// Before
private CacheService fooCache = Act.app().cache("foo");

// After
@Named("bar")
@Inject
private barCache;
  • timestamp auditing 支持在 base class 上定义的 timestamp 字段

@MappedSuperClass
public class BaseModel {

    @CreatedAt public Date created;
    @LastModifiedAt public Date lastModified;

}
  • @Configuration 支持 static 字段

@Configuration("foo.bar")
public static String fooBar;

更多 act-1.8.0 的内容

Act-1.7.2 - 2018-02-25

  • 支持 Timestamp Audting

public class User {
    public String username;
    ...
    @CreatedAt
    public Date created;
    @LastModified
    public Date lastModified;

}

更多 act-1.7.2 的内容

Act-1.7.1 - 2018-02-21

  • 允许用户定义 action handler 支持 Partial Path

@GetAction("/file/...")
public File handleFileRequest(@PartialPath String filePath) {
    // filePath should be anything in the URL path that after `/file/`
}

更多 act-1.7.1 的内容

Act-1.7.0 - 2018-02-19

  • 静态资源支持 DirectoryIndex - 自动查找目录下的 index.html 文件

  • API Doc TOC 以 HTTP Method 和 URL 组织

  • @Sensitive 数据字段支持

// creditCardNo 字段内容会被框架加密处理后存入数据库
// 从数据库取出数据时会自动解密
public class User {
    public String firstName;
    public String lastName;
    public String email;
    public String mobile;
    @Sensitive
    public String creditCardNo;   
}
  • 简化密码字段处理

// 老办法
public class User {
    public String username;
    private String passhash;
    public void setPassword(String password) {
        passhash = Act.crypto().passwordHash(password);
    }
}

// 新办法
public class User {
    public String username;
    @Password
    public String password;
}
  • 简化方法执行的测量

// 老方式
public class Foo {
    private Metric metric = Act.metricPlugin().metric("app");
    // measure bar1 execution time
    public void bar1() {
        Timer timer = metric.startTimer("bar1");
        try {
            ...
        } finally {
            timer.stop();
        }
    }
    // measure bar2 execution count
    public void bar2() {
        metric.countOnce("bar2");
        ...
    }
}

// 新方式
// define measure namespace.
// `("foo")` is optional and can be inferred from class name
@MetricLabel("foo")
public class Foo {
    @MeasureTime("bar1") // ("bar1") is optional and can be inferred from method name
    public void bar1() {
        ...
    }
    @MeasureCount("bar2") // `("bar2")` is optional and can be inferred from method name
    public void bar2() {
        ...
    }
}
  • AppEvent 重命名为 SysEvent, AppEventId 重命名为 SysEventId

  • 支持 JAX-RS 方式定义 Controller Action Handler

public class TestController {

    // Act Style
    @GetAction("foo")
    public String foo() {return "foo";}

    // JAX-RS style
    @GET @PATH("bar")
    public String bar() {return "bar";}

}
public class Demo {
    @LoadResource("name.list")
    public List<String> nameList

    @LoadResource("name.list")
    public File nameListFile

    @LoadResource("name.list")
    public Set<String> uniqNameList;

    @LoadResource("pojo.json")
    public MyPojo myPojo;
}

更多 act-1.7.0 的内容

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:ActFramework 1.7.0 - 1.8.1,高性能 Java Web 框架
分享
评论(20)
精彩评论
9
Spring的老乡,都来自澳大利亚,功能全,更易用,是SpringBoot的搭建企业应用,微服务的另外一个选择
性能当然非常好,国际评测在Java框架领域遥遥领先。
2
最享受的框架. 开发时热加载特性. 开发就是一种享受 :wink:
1

引用来自“niniwei”的评论

:smiley::smiley:和spring比优势在哪
1. 更简介 - 同样功能的实现代码量会比 Spring 少 1/3 以上
2. 更方便 - 开发时热加载让你体验动态语言的感觉
3. 更迅猛 - 数据来说话:https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=json&l=hra0e7&c=4&o=4
最新评论
0

引用来自“梦里蓝天”的评论

你们家网站挂了
谢谢提醒。我刚刚上去看了下,还在,估计是被墙了 :pensive:
0
你们家网站挂了
0
比JFinal如何?
0
:laughing:墙裂支持
2
最享受的框架. 开发时热加载特性. 开发就是一种享受 :wink:
0
2018,是时候放下spring,尝试一下新的框架了~:+1:
0
6666666666666
0
没看出好在哪,不过支持有理想
0
已阅
1

引用来自“niniwei”的评论

:smiley::smiley:和spring比优势在哪
1. 更简介 - 同样功能的实现代码量会比 Spring 少 1/3 以上
2. 更方便 - 开发时热加载让你体验动态语言的感觉
3. 更迅猛 - 数据来说话:https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=json&l=hra0e7&c=4&o=4
0
:smiley::smiley:和spring比优势在哪
0

引用来自“闲大赋”的评论

Spring的老乡,都来自澳大利亚,功能全,更易用,是SpringBoot的搭建企业应用,微服务的另外一个选择
性能当然非常好,国际评测在Java框架领域遥遥领先。

引用来自“罗格林”的评论

谢谢大赋支持,act-beetl, act-beetlsql 一直紧跟 beetl,beetlsql 的步伐的。啥时候一起搞一个 act-plus :sweat_smile:
我也有这个想法,等plus 搞完了就可以搞了
0

引用来自“闲大赋”的评论

Spring的老乡,都来自澳大利亚,功能全,更易用,是SpringBoot的搭建企业应用,微服务的另外一个选择
性能当然非常好,国际评测在Java框架领域遥遥领先。
谢谢大赋支持,act-beetl, act-beetlsql 一直紧跟 beetl,beetlsql 的步伐的。啥时候一起搞一个 act-plus :sweat_smile:
0
支持优秀作品,与国不国产无关
0
看了更新内容,不错
0
支持一下
0
:+1: 这个框架里面很多先进理念
9
Spring的老乡,都来自澳大利亚,功能全,更易用,是SpringBoot的搭建企业应用,微服务的另外一个选择
性能当然非常好,国际评测在Java框架领域遥遥领先。
0
支持
0
支持国产。
顶部