Play是一个全栈框架

栏目: Java · 发布时间: 6年前

内容简介:没有了Spring MVC,你就什么都不会了吗? no no no !作为一个工程师你必须了解更多,Play MVC就是是你必备的技能,Play framework非常强大堪比Spring framework。Play是一个全栈框架,它包含了Web应用和Rest服务所需要的所有组件,如:http服务器、表单处理、跨域请求保护、强大的路由机制、国际化等等。Play集成了很多ORM层。

背景

没有了Spring MVC,你就什么都不会了吗? no no no !

作为一个工程师你必须了解更多,Play MVC就是是你必备的技能,Play framework非常强大堪比Spring framework。

学习Play之前先要掌握sbt的使用。

介绍

Play是一个全栈框架,它包含了Web应用和Rest服务所需要的所有组件,如:http服务器、表单处理、跨域请求保护、强大的路由机制、国际化等等。Play集成了很多ORM层。

同时Play支持 java 和scala两种语言进行开发。它默认使用Akka框架和Akka Http服务器。Play的应用天生是无状态、非阻塞、事件驱动架构特点,支持水平和垂直监控测量,同时资源使用效率也更高。Play项目里面包含Scala的模块组件,如果你是Java开发者也不用担心要学Scala语法,组件都支持Java API供你对接。

优点总结:

  • 它的MVC架构是主流框架,简单易学,容易上手。
  • 直接支持常规WEB开发任务模式和热加载,节省宝贵的开发时间。
  • 它有个很大且活跃的技术分享社区,可以交流学习也可以帮助解决疑问。
  • 支持Twirl模版去渲染页面,Twirl语法容易学、不需要特定的编辑器、自带语法类型检测、错误会直接展示在浏览器页面上。

核心原理分析

Play组件架构:

Play是一个全栈框架

Play Project 目录结构

Play是一个全栈框架

详细目录介绍:

  • app:所有业务代码放在这里
    • controllers:Java代码存放目录,MVC模型中的C。
    • v1:常规业务代码所在,可以按时间情况进行命名。
    • views:页面模版存放目录,如html。
    • Module.java:这里是编写模块绑定代码,结合conf来设置。
  • conf : 配置文件
    • META-INF:项目包构建的配置文件,web服务必须的。
    • application.conf:核心配置文件,主要配置都写在这里。
    • logback.xml:日志文件,logback组件。
    • posts.routes:请求路由分发配置文件,Post命令。
    • routes:请求路由分发配置文件,Get命令。
  • project:项目编译环境一些配置。
  • public:静态资源目录:图片、css、js等。
    • images
    • javascripts
    • stylesheets
  • target:编译后class等文件目录。
  • test:测试代码目录。
  • .gitignore:git提交过滤配置。
  • README.md:项目说明文档。
  • LICENSE:使用授权文件。
  • build.gradle:Gradle模式下依赖包管理,类似于maven的pom.xml文件。
  • build.sbt:Sbt模型下依赖包管理。
  • gradlew.bat:window环境下Gradle定制脚本。类似于mvn|grunt|gulp之类命令,可以运行task:build|init|dist|stage|tasks|help|test|check等。
  • gradlew:linux环境下。

重点强调:

gradlew 类似于maven的功能,但是比它要强很多;和前端的gulp、grant比较像;

sbt是默认play的环境命令,也是一般常规学习入门命令,类似node的npm命令、springboot的spring命令。

核心用例讲解

第一步:创建 Play 项目。

这里采用官方推荐的模版创建基础项目,可以参考官方文档: play-java-seed

打开window的cmd执行运行命令,跟着流程一步步走输入项目名和包名即可。

sbt new playframework/play-java-seed.g8

sbt命令需要自己去安装,我使用的是1.2.6版本

Play是一个全栈框架

第二步:IDEA中运行项目。

intellij idea中需要安装scala插件,jetbrains官方文档描述很清晰: idea-scala-plugin

Play是一个全栈框架

安装文档总描述,在idea中配置一个启动task,这样就可以run\debug。

Play是一个全栈框架

idea中直接运行右下角:sbt shell,会弹出界面使用sbt的命令,如:run(运行项目)、stop(停止项目)

Play是一个全栈框架

在浏览器中输入:localhost:9000 可以访问默认的页面,出现 Welcome to Play! 表示启动成功。

对于project的管理不是采用gradle也不是maven,而是使用sbt提供的窗口,如下图:

Play是一个全栈框架

第三步:生产环境打包发布运行。

Play项目的部署与传统tomcat服务器部署那种,和springboot可执行jar方式都不同;Play在生产环境下运行需要配置http.secret.key参数才能正常启动, secretKey文档

1.可以把源码项目直接部署到服务器上,使用SBT命令运行服务,可以非常方便的测试、编译、运行;

1、需要在服务器上安装sbt环境(也就是个软件啦),可以去 SBT官网下载

  • window安装zip和mis都是很方便的;
  • linux也可以直接安装zip包来运行,但是需要配置一下环境,不然sbt命令运行会比较麻烦;
  • linux也可以直接使用yum install sbt来安装, linux-sbt文档参考
  • 记得把maven地址配置到sbt的配置中;

2、将整个项目文件夹Copy到服务器上要部署的目录下。

  • 把什么.idea .g8 等等目录都删除

3、进入项目根目录下运行sbt命令(Play项目自带内置服务器)。

  • 执行命令:sbt,linux环境下会切换成sbt模式,如:[play-java-sample] $ tasks
  • 后台运行服务命令,如: [play-java-sample] $ bgRun

SBT支持的commands清单,也可以查看 官方命令文档

Play是一个全栈框架

2.使用命令:gradlew dist ,生成zip的部署包,和maven的assembly插件类似;

1、执行命令:gradlew dist,打包playBinary.zip;

  • 执行命令:gradlew dist,在项目的build/distributions/目录下,生成了playBinary.zip|tar文件;

2、playBinary.zip上传服务器,解压启动playBinary命令

  • *.zip上传服务器并解压,会生成bin\lib\conf三个目录,此时的项目资源生成了jar文件存放在lib文件夹里面;
  • 在/bin目录中执行playBinary命令可启动服务,配置文件在conf目录下;

总结

使用Play越深越是觉得这个框架很酷很方便,就像是tomcat+nginx+webmvc+html+freemarker的集合体。Play的代码热加载能力比springboot要强很多,出现比它还有早。

sbt命令 工具 实在是太酷,完全超越了springboot一直在努力完善的spring命令工具,让我觉得springboot可能抄袭了play。

如何你要掌握Play就得把spring mvc、freemarker|themeleaf、tomcat、nginx、maven都抛弃掉,因为它都有自己的一套标准需要你重新学习。官方的技术文档非常详细,可惜是全英文对部分同学来说有门槛而网上的中文文档比较零散,推荐直接看英文版。

常用链接

play官网: play-framework

play2.x在idea中使用文档: play2.x

play 样例下载中心: play-sample

个人测试例子: play-java-sample

作者:Owen Jia, 欢迎关注他的博客:Owen Blog 。

学习的路上永无止境,我们当砥砺前行。

本文由 Owen Jia 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: 2019/01/25 17:07


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Practical Algorithms for Programmers

Practical Algorithms for Programmers

Andrew Binstock、John Rex / Addison-Wesley Professional / 1995-06-29 / USD 39.99

Most algorithm books today are either academic textbooks or rehashes of the same tired set of algorithms. Practical Algorithms for Programmers is the first book to give complete code implementations o......一起来看看 《Practical Algorithms for Programmers》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器