Play framework
简介
Play!是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代Web应用所需的所有东西。
Play 是一个纯 Java 的框架,它让你保持使用你喜欢的开发工具和类库。如果你已经是一个使用 Java 平台的开发者,那么你不需要切换到另一种语言,其他 IDE 或者其他类库, 而仅仅是切换到一个效率更高的 Java 环境。
特点
- 一个非常简单的开发周期。此框架自动编译和重新装载源文件的任何改变。
- 智能捆绑HTTP参数到Java方法参数。
- 基于Jboss Netty框架的快速HTTP服务器,使Play能支持高并发、长连接以及静态文件优秀的输出能力。
- 一个基于Groovy的强大的模板引擎,具有多层继承,定制用户标签的能力,高可拓展性等。
- 优秀的错误报告功能:当发生异常,此框架会直接显示出错代码,甚至是模板代码。
Play logo
走进play framework
Play framework 官网 https://www.playframework.com/
Play framework 中文翻译 http://www.playframework.cn/
Play framework 下载地址 https://www.playframework.com/download
认识play framework
play目录解析
framework目录解析
环境配置
1、.环境配置要求:play目录不能包含空格跟中文,避免不必要的异常。
测试环境是否配置成功
看到下图时表示play框架已经配置成功
2.创建新项目
在创建时未报异常说明项目创建成功
启动项目
看到Server is up and running语句时表示项目已经启动完成
运行效果
在地址栏输入http://localhost:9000/ 进行请求
项目导入至IDE工具
Play项目创建完成后并无法直接导入到eclipse里面,
需要使用 play eclipsify 项目名称(相对或绝对路径或项目名称) 命令将项目编译后才能导入至IDE工具中
项目目录解析
配置文件详解
#当前项目名称
application.name=test
#当前项目运行时模式dev开发模式,prod生产模式
application.mode=dev
# 在dos下以prod模式运行时生效
%prod.application.mode=prod
#当前项目加密的key
application.secret=g4gXdQOseuZah9FBjqmXnLJPiOPgvhTkSrWcWhl3YI0X3fBvJTfh4oXgkf2YxxzR
# Date format
# ~~~~~
date.format=yyyy-MM-dd
# date.format.fr=dd/MM/yyyy
#默认端口号(默认端口为9000)
# http.port=9000
#项目别名
# http.path=/
# JDK运行时环境版本
# Java source level => 1.5, 1.6 or 1.7 (experimental)
# java.source=1.5
#数据库配置文件
#db=数据库协议://用户名:密码@数据库域名(或IP或机器名):端口号(默认可不写)/数据库名称db=mysql://user:pwd@host:port/database
#
# 数据源以插件形式配置
# db=postgres://user:pwd@host/database
#单独配置方式(以JDBC方式)
# If you need a full JDBC configuration use the following :
# db.url=jdbc:postgresql:database_name
# db.driver=org.postgresql.Driver
# db.user=root
# db.pass=secret
#配置数据连接池
# Connections pool configuration :
# db.pool.timeout=1000
# db.pool.maxSize=30
# db.pool.minSize=10
#配置数据源
# db=java:/comp/env/jdbc/myDatasource
#JPA信息配置 JPA Configuration (Hibernate)
# Specify the custom JPA dialect to use here (default to guess):
#jpa方言配置
# jpa.dialect=org.hibernate.dialect.PostgreSQLDialect
#是否启用ddl执行方式
# jpa.ddl=update
#是否在运行进输出SQL语句
# Debug SQL statements (logged using DEBUG level):
# jpa.debugSQL=true
#文件上传时默认路径
# Store path for Blob content
attachments.path=data/attachments
#Memcached 缓存配置 Memcached configuration
# ~~~~~
# 是否启动Memcached 缓存服务
# memcached=enabled
#Memcached 缓存服务器配置
# Specify memcached host (default to 127.0.0.1:11211)
# memcached.host=127.0.0.1:11211
#Memcached 缓存服务器集群
# Or you can specify multiple host to build a distributed cache
# memcached.1.host=127.0.0.1:11211
# memcached.2.host=127.0.0.1:11212
#
# Use plain SASL to authenticate for memcached
# memcached.user=
# memcached.password=
# 邮件配置Mail configuration
# ~~~~~
# Default is to use a mock Mailer
mail.smtp=mock
# Or, specify mail host configuration
# mail.smtp.host=127.0.0.1
# mail.smtp.user=admin
# mail.smtp.pass=
# mail.smtp.channel=ssl
#默认请求返回地址
test.application.baseUrl=http://localhost:9000
# %prod.application.baseUrl=http://www.yourdomain.com/
routes配置文件
路由配置信息,与stru.ts2配置相似
Routes路由配置解析
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
#默认首页请求地址 Home page
GET / Application.index
请求方式 请求action 完全限定名+方法名
POST /register Application.register
# Ignore favicon requests
GET /favicon.ico 404
#默认静态资源加载配置
# Map static resources from the /app/public folder to the /public path
GET /public/ staticDir:public
#通配符配置方式
# Catch all
* /{controller}/{action} {controller}.{action}
启动文件解析(test.launch)
此启动文件需要注意的事项在于项目运行时内存溢出处理、项目名称修改后项目无法运行、出现问题debug模式如何启动等问题。
编译部署
加粗部份为可选参数
命令:play war 项目名(可使用绝对路径或相对路径) –exclude .svn:tmp -o 编译后项目名称(可以使用绝对或相对路径)