摘要:对的详细配置已经超出了本教程的范围,但大体上看上去像这样然后在中加入下面一行,让本地的反向代理能够连接上你的应用这才只是个开始如果一路上你一直跟着本教程,你应该已经懂得如何开发一个应用了。
部署应用
如今我们已经完成了博客引擎了。让我们来看一下一些部署Play应用的步骤。
定义一个框架ID一般,你需要部署你的应用到一台跟开发时不一样的电脑。这台电脑(很有可能是台服务器)上面的Play安装包不会是一样的。
Play允许你给每个框架安装包指定不同的ID,来用同一个application.conf管理不同的配置。让我们假设应用将部署在server01上。
一旦框架已经安装在服务器上,用play id来定义一个框架ID:
$ play id
并设置id为server01。现在我们可以在yabe的配置中定义只在服务器运行时起效的值。
在PROD模式下设置应用我们首先给部署版本定义application.mode变量。目前,我们一直使用DEV来实现热重载,即时重新编译Java文件,显示错误信息。在PROD模式中,Play会在启动时编译所有的Java代码和模板,而且不会检查是否有改变。
在yabe/conf/application.conf定义:
%server01.application.mode=PROD
现在当你在服务器运行yabe,它就会自动在PROD下启动。
配置MYySQL数据库在生产环境中,我们将使用MySQL而不是一直在用的H2数据库。Play提供了MySQL配套的JDBC驱动,所以我们不需要下载别的。
编辑yabe/conf/application.conf中的数据库配置:
%server01.db=mysql:root:secret@yabe
我们现在调整一下Hibernate管理数据库模式的方式。如果Java模型变动时,Hibernate能够自动更新数据库模式,那是再好不过的。
修改jpa.ddl配置键:
%server01.db=mysql:root:secret@yabe
不过这么做恐怕会导致不可预料的后果,毕竟,在运行时吧数据库的安全交给未知的事物,这不是个好主意。如果你不希望Hibernate自动更新数据库,修改jpa.ddl配置键为validate:
%server01.jpa.ddl=validate配置HTTP服务器
目前我们仅仅是把80端口作为内置HTTP服务器的默认端口。但是这样做一台服务器上只能运行一个Play应用。如果我们需要在一台服务器上运行不同的应用(不过使用的是不同的IP地址),我们需要使用一个HTTP服务器作为反向代理。
你可以选择喜欢的HTTP服务器并配置其作为反向代理。这里我们选择轻量级的lighttpd作为例子。
对lighttpd的详细配置已经超出了本教程的范围,但大体上看上去像这样:
server.modules = ( "mod_access", "mod_proxy", "mod_accesslog" ) … $HTTP["host"] =~ "www.yabe.com" { proxy.balance = "round-robin" proxy.server = ( "/" => ( ( "host" => "127.0.0.1", "port" => 9000 ) ) ) }
然后在application.conf中加入下面一行,让本地的反向代理能够连接上你的Play应用:
%server01.XForwardedSupport=127.0.0.1这才只是个开始
如果一路上你一直跟着本教程,你应该已经懂得如何开发一个Play应用了。你学到了Play开发所需的大部分概念。
但有许多特性我们还没谈论到,特别是跟Web服务相关的,比如JSON或XML。Play还有一些带来更多特性的模块没有讲到。并且Play本身也在不断发展着。
如果你认为Play能够使得你的开发如虎添翼,现在把握机会开始吧!
谢谢收看!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64093.html
摘要:确保你的文本编辑器已经做了相应的配置。第一个,会自动监测源代码的改变并在运行时自动重载。检查下面的一行是否出现在应用日志中使用版本控制系统来追踪变化当你开发一个项目时,最好使用版本控制系统来存储你的源代码。 Play是一个Java Web敏捷开发的框架http://www.playframework.com/documentation/1.2.7/home 之所以要翻译这个教程,是因...
摘要:完成应用测试我们已经完成了我们想要创建的博客引擎。当然我们已经完成了测试所有模型层的功能。评估代码覆盖率当然我们还没有完成应用所需的所有测试用例。如你所见,我们远远没有完成对应用的全面测试。 完成应用测试 我们已经完成了我们想要创建的博客引擎。不过这个项目尚未完全结束。为了保证代码的质量,我们需要添加更多的测试。 当然我们已经完成了测试所有模型层的功能。所以博客引擎的核心功能已经被...
摘要:国际化和本地化完成了博客引擎后,我们来考虑额外的一件事应用的国际化和语言的本地化。国际化和本地化我们将分两步讨论,先是国际化,再是本地化。实际上,两者是同步进行的你在国际化的同时,往往也是在本地化。 国际化和本地化 完成了博客引擎后,我们来考虑额外的一件事:Web应用的国际化和语言的本地化。虽然我们可以一开始就做这件事,但是最好还是先完成该应用的单一语言版本,然后再添加其他语言的支持...
摘要:通过来实现一个基本的管理面板目前,我们还没法使用博客的来写新的文章,或修改评论。提供了一个即开即用的模块,可以快速生成一个基本的管理面板。这是因为默认是以的输出来得到一个模型对象的表示。在本教程的最后一章,你会学到关于本地化信息的更多东西。 通过CRUD来实现一个基本的管理面板 目前,我们还没法使用博客的UI来写新的文章,或修改评论。Play提供了一个即开即用的CRUD模块,可以快速...
摘要:设置验证码任何人都可以在我们的博客下发布评论,所以我们需要避免非人类用户来扰乱秩序。一个简单的防范方法是设置验证码。然后我们修改表单来显示验证码,并把写入隐藏的域里面。检查验证码功能是否完成了。 设置验证码 任何人都可以在我们的博客下发布评论,所以我们需要避免非人类用户来扰乱秩序。一个简单的防范方法是设置验证码。 生成验证码 如何利用Play框架来生成验证码?简单来说,我们需要增...
阅读 3263·2023-04-25 14:35
阅读 3417·2021-11-15 18:00
阅读 2536·2021-11-12 10:34
阅读 2481·2021-11-11 16:54
阅读 3464·2021-10-08 10:12
阅读 2762·2021-09-06 15:02
阅读 3318·2021-09-04 16:48
阅读 2799·2019-08-29 14:02