使用 play 框架一年,虽然认识不够深刻,但还是做个阶段性总结
用的是1.2.6的版本,相对稳定,2.0以上的版本和1.x的版本已经不是一个概念了。
特点
- 第一就是热部署咯,代码即时修改,刷新后即时生效,这点很爽
- 全栈的框架,从前端模板到数据库调用框架都自带了
- Bug时,错误提示直接定位到错误行,很方便
- 前端模板系统运用Groovy语言作为支持,是一个特点,相比JSP、SpringBoot的thymeleaf等语言和模板,各有千秋吧。用法有些时候可能记不住,所以我开发的时候用了vue.js配合,还不错吧
知识点(i++)
- 路径 play的配置文件routes 极简风
路径 = 请求方式(get/post/*) + 请求路径 + 实际调用
# Home page
GET / Application.index //这就是应用入口
* /{controller}/{action} {controller}.{action} // 默认配置
- 返回 play的请求返回render方法
//请求页面
public static void index(){
render(/home/index.html);
}
//请求页面 + 参数
public static void index(){
String userName = "张无忌";
render(/home/index.html,userName);
}
//请求数据
public static void getUser(){
User user = new User();
render(user);
}
请求数据的时候,一般会使用ajax请求,所以会有各种情况,为了使用的方便,可以在render方法上自行封装一层方法,加上状态码,返回成功状态等
- 缓存 play自带catch机制,使用起来很方便
//存储
Cache.set("武林秘籍", "独孤九剑", "30mn"); //第3个参数为时间,可不传
//获取
Cache.get("武林秘籍")
- 标签 play自带许多标签功能,如@Before @After @With @Finally @Cath 等很多简介的标签方法
@after //标注的方法会在该类的以及该类的子类所有方法执行后执行
@before //标注的方法会在该类的以及该类的子类所有方法执行前执行
@with //一般用法你想使用这个类的拦截器但是又不想继承这个类 我们可以可以用到@with这个注解了
@Finally//@Finally和java中的finally一样,不管有该类的方法有木有没有执行成功都会进入该方法
@Cach //该类的程序抛出异常时候可以被标注了@Catch的方法抓住,我们可以在里面做一些必要的操作,比如记录相关错误日志,异常跳转等