zoukankan      html  css  js  c++  java
  • Play! Framework —— 颠覆“企业级”=“复杂”的观念

    Play! Framework 是07年的一个项目,08年开源,09年11月25日发布了1.0版。发布后我就一直在学习这个框架。现在正式发布版本已经是1.01版,而且1.1版本也在每日更新。可以在http://download.playframework.org 下载已发布版本,和每日的最新版。

    学习Play!的过程中,最经常的感受就是——简直太简单了!并不是说Play!是一个设计简单的框架,相反学习中发现处处都会发现Play!设计的完整,这种完整性甚至包括网站设计和学习文档。Play!的简单之处在于它学习和使用起来非常简单。使用Play!新建项目,所有的目录结构都会自动建立。Play!摒弃了传统的JSP,Servlet技术(这太伟大了),自己提供了一套非常易用的MVC 框架。Play!内建了JPA的支持,内置了Hibernate作为默认的持久化引擎。

    在Play!中,持久化只需要集成Model类并加入@Entity注解:

    代码
     1 ...
     2 
     3 @Entity
     4 
     5 public class User extends Model
     6 
     7 {
     8 
     9   public String name;
    10 
    11   public String password;
    12 
    13   public User(String name,String password)
    14 
    15   {
    16 
    17     this.name=name;
    18 
    19     this.password=password;
    20 
    21   }
    22 
    23 }
    24 

    然后,创建User并保存到数据库就只需要一行代码:

    1 new User("zxsoft","password").save();

    这就是全部代码,不需要写任何Mapping配置文件。

    Play! 还内置了HSQLDB 数据库,支持内存数据库,非常方便做项目开发和测试。

    Play!的Controller采用命名约定:

    1 <form action="@{Application.createUser}">
    2     <input name="name" />
    3     <input name="password" />
    4     <input type="submit" value="Create User" />
    5 </form>

    然后在Application类中,建立createUser方法:

    1 ...
    2 public class Application{
    3     ...
    4     public static void createUser(String name,String password)
    5     {
    6         User user=new User(name,password).save();
    7         render(user);
    8     }
    9 }

    无需其他任何配置,Play!会自动映射form中的name和password参数至createUser方法。

    View层Play!使用以Groovy语法写好的html模板中去以render()方法的参数渲染,并将结果回传给客户端。

    而这一切,全部都不需要配置。

    Play!虽然使用简单,扩展性却非常强大,篇幅所限所述不能详尽。http://www.playframework.org 是Play!的官方网站,推荐大家到这儿看看。Play!的文档非常详细,教程中有份手把手做一个Blog引擎的教程,相信照着做一下之后一定会让你学会Play! Framework,那时你一定会爱上她的!

    张旋(zxsoft)
    如对本文有什么疑问,请在下面写下留言,谢谢!

  • 相关阅读:
    grunt in webstorm
    10+ Best Responsive HTML5 AngularJS Templates
    响应式布局
    responsive grid
    responsive layout
    js event bubble and capturing
    Understanding Service Types
    To add private variable to this Javascript literal object
    Centering HTML elements larger than their parents
    java5 新特性
  • 原文地址:https://www.cnblogs.com/zxsoft/p/1655216.html
Copyright © 2011-2022 走看看