内容简介:没有了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 Project 目录结构
详细目录介绍:
- 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版本
第二步:IDEA中运行项目。
intellij idea中需要安装scala插件,jetbrains官方文档描述很清晰: idea-scala-plugin 。
安装文档总描述,在idea中配置一个启动task,这样就可以run\debug。
idea中直接运行右下角:sbt shell,会弹出界面使用sbt的命令,如:run(运行项目)、stop(停止项目)
在浏览器中输入:localhost:9000 可以访问默认的页面,出现 Welcome to Play! 表示启动成功。
对于project的管理不是采用gradle也不是maven,而是使用sbt提供的窗口,如下图:
第三步:生产环境打包发布运行。
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清单,也可以查看 官方命令文档 ;
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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 基于Google MVVM框架的baseMVVM框架
- Spring 框架是怎么出生的(二):重构提炼出框架
- Spring 框架是怎么出生的(二):重构提炼出框架
- Genesis框架从入门到精通(7): 框架的过滤器
- 如何打造自己的POC框架-Pocsuite3-框架篇
- 如何打造自己的PoC框架-Pocsuite3-框架篇
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
特别版MATHEMATICA全书
[美] 斯蒂芬·沃尔夫雷 / 赫孝良、周义仓 / 西安交通大学出版社 / 2002-1 / 60.00元
一起来看看 《特别版MATHEMATICA全书》 这本书的介绍吧!