Android Other程序员Android 架构

Play是一个全栈框架

2019-01-25  本文已影响1097人  TS先生

背景

没有了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供你对接。

优点总结:

核心原理分析

Play组件架构:

architecture

Play Project 目录结构

目录结构

详细目录介绍:

重点强调:
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版本

结果展示

第二步:IDEA中运行项目。

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

导入已存在项目

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

runPlay

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

run

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

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

project

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

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

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

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

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

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

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

sbt-command

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

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

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

总结

使用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-java-sample


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

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

上一篇下一篇

猜你喜欢

热点阅读