实习的公司后端技术栈是play+Ebean+Guice,搬砖有一段时间了,学着使用play框架从零开始搭一个后端项目。

一、环境准备

1、jvm环境:javaSE 1.8以上都行,但推荐使用 java 1.8.0_121
2、项目构建工具: sbt 最新版本
3、开发环境:推荐使用 IDEA ,装上 scala 插件,此时在File->settings->Build,Excution,Deployment->Build Tools中会出现sbt的配置,在其中设置好JVM。此后在导入sbt项目时会自动根据项目中的build.sbt文件中的依赖项下载依赖。

二、项目构建

1、构建新项目可通过在IDEA Terminal或cmd终端中执行以下命令,利用现成模板创建一个新项目

sbt new playframework/play-java-seed.g8

2、项目构建成功后,进入其中打开终端,使用sbt run命令启动应用
3、在浏览器中输入localhost:9000可看到欢迎界面
4、项目结构见
官方文档–Anatomy

三、连接mysql数据库

1、在build.sbt中添加库依赖

libraryDependencies += javaJdbc

2、在conf/application.conf中配置jdbc数据源,默认数据源必须用default命名

db.default {
  driver = com.mysql.cj.jdbc.Driver
  url = "jdbc:mysql://localhost:3306/hw5?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=UTC"
  username = root
  password = 123456

3、play不提供driver依赖,所以要在build.sbt中添加驱动依赖。因本机数据库版本为 mysql 8.0.12,所以配置为

libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.12"

sbt下载依赖后,可在C盘:\用户\当前用户.ivy2\cache\mysql\mysql-connector-java\jars\中找到mysql-connector-java-8.0.12.jar包,其中有mysql 8.0的驱动 com.mysql.cj.jdbc.Driver.calss。
此外,mysql 8.0的url中需要指定useSSL=false。

4、在conf/application.conf中禁掉evolution

play.envolution.default = false

5、更多配置见官方文档–javaDatabase

四、配置Ebean ORM

1、在project/plugins.sbt中添加

addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "5.0.2")

2、在build.sbt中启用ebean插件并添加Ebean中的JPA依赖

lazy val root = (project in file("."))
    .enablePlugins(PlayJava, PlayEbean)
libraryDependencies += "io.ebean" % "persistence-api" % "2.2.1"
# 顺便也添加lombok依赖
libraryDependencies += "org.projectlombok" % "lombok" % "1.18.4"

3、配置model类

我的数据库中的user表如下:
在这里插入图片描述
在models包下建一个User类:

package models;
import io.ebean.Finder;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Data // lombok插件的注解,自动生成所有属性的getter和setter方法,自动生成toString、hashCode、equals方法
@Entity // JPA中的注解,表示此类是一个实体类,映射到数据库表
@Table(name = "user", catalog = "hw5") // JPA注解,表示此类映射到hw5库中的user表
public class User extends io.ebean.Model {
    // 用于帮助化查询操作
    public static final Finder<Long, User> find = new Finder<>(User.class);
    @Id // JPA注解,表示此属性为主键
    @Column(name = "F_ID") // 映射到F_ID字段
    private Long userId;
    @Column(name = "F_NAME")
    private String name;
    @Column(name = "F_PASSWORD")
    private String password;

4、在conf/application.conf中进行如下配置,将models包中所有的模型类都放入程序配置文件中,以此配置Ebean的运行时库。

ebean.default = ["models.*"]

5、测试一下

在controller中编写index方法

public class HomeController extends Controller {
    public Result index() {
        User user = User.find.byId(1L);
        return ok(Json.toJson(user));

配置routes文件

GET     /                           controllers.HomeController.index()

在浏览器中输入localhost:9000,得到结果如下
在这里插入图片描述
6、详见
官网–java Ebean

五、国际化

1、在conf/application.conf中指定本应用所用语言

play.i18n.langs = [ "zh-CN", "en", "en-US", "fr" ]

2、在conf/messages文件中添加映射,为了避免国际化后结果出现乱码,应统一用UTF-8编码。可在file->settings->Editor->File Encoding中设置。

HELLO = 你好,{0}  # {0}是参数

3、在build.sbt中添加依赖注入Guice组件

libraryDependencies += guice

4、调用MessagesApi的实例进行国际化

public class HomeController extends Controller {
    @Inject  // 使用guice依赖注入
    MessagesApi messagesApi;
    public Result index() {
        User user = User.find.byId(1L);
        // 第一个参数指定本地化语言,Lang引的包为play.api.i18n.Lang;
        // 第二个参数为conf/messages中的key
        // 第三个参数为conf/messages中的{0},第四个参数为{1}
        return ok(messagesApi.get(Lang.defaultLang(),"HELLO",user.getName()));

5、返回结果
在这里插入图片描述
6、更多见
官网–i18n

欢迎来到play世界实习的公司后端技术栈是play+Ebean+Guice,搬砖有一段时间了,学着使用play框架从零开始搭一个后端项目。环境准备1、jvm环境:javaSE 1.8以上都行,但推荐使用 java 1.8.0_1212、项目构建工具:sbt 最新版本3、开发环境:推荐使用 IDEA,装上scala插件,此时在File-&gt;settings-&gt;Build,Excu... 是路径中不包含空格和中问符号; 下载官方的 play-samples-play-java-hello-world-tutorial.zip 案例,解压缩后,通过终端进入解压目录 输入 sbt sbtVersion查看版本信息,显示类...
学习Play时自己写的,主要参考官网。新手学习时坑比较多,所以写成仓库记录下来了,有完整的注释,仅供参考,有问题提交PR即可。 PS:可以先看官网,照着敲,本项目基本覆盖大部分官网提到的知识点。 地址https://github.com/jxnu-liguobin/scala-play-learn Version Play 2.7 Scala 2.12 Main concepts ...
祖传一个play框架项目,如今出现故障,要去修复.框架结构和平时的不太一样.不知所云,不知道网关在哪里,实现在哪里.便要去学paly 2.先去下载playhttps://www.playframework.com/download 按官方说的先去启动sbt.bat.然后我日了狗.下载jar包依赖竟然不停了.太SB了这个框架. 简直是难以忍受.还特别慢.难道它要给我下载一个中...
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 数据库是整个站点的数据储藏室。用户提交的数据可以存储在数据库中,以便未来使用。Play可以通过JDBC和数据库通信。我讲介绍Play和mysql数据库的连接。  Play 2.*版本的默认操作数据库的方式是通过Ebean。Play提供Finder这一帮助类型,可以实现一些...
#mysql数据源配置 jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://192.168.1.60:3306/test jdbc.username=root jdbc.password=root 其中test是你要连接的数据库名。 一般来说我们都会在jdbc.url加上useUnicode=true&characterEncoding=UTF-8,用以指定指定字符的编码、解码格.