java web mvc-06-play framework intro

拓展阅读

Spring Web MVC-00-重学 mvc

mvc-01-Model-View-Controller 概览

web mvc-03-JFinal

web mvc-04-Apache Wicket

web mvc-05-JSF JavaServer Faces

web mvc-06-play framework intro

web mvc-07-Vaadin

web mvc-08-Grails

开源

The jdbc pool for java.(java 手写 jdbc 数据库连接池实现)

The simple mybatis.(手写简易版 mybatis)

play framework

Play是一个高生产力的Java和Scala Web应用程序框架,集成了现代Web应用程序开发所需的组件和API。

Play基于轻量级、无状态、面向Web的架构,并通过其基于Pekko Streams的响应式模型实现了对高度可扩展应用程序的可预测和最小资源消耗(CPU、内存、线程)。

是什么?

Play是一个高生产力的Java和Scala Web应用程序框架,集成了用于现代Web应用程序开发的组件和API。Play是由Web开发人员为Web应用程序开发而开发的。

你会发现Play的模型-视图-控制器(MVC)架构非常熟悉且易于学习。Play提供了简洁而功能强大的编程模式。而且,由大量开发Play应用程序的社区提供了一个优秀的资源,可用于解答你的问题。

作为一个全栈框架,Play包含构建Web应用程序和REST服务所需的所有组件,例如集成的HTTP服务器、表单处理、跨站请求伪造(CSRF)保护、强大的路由机制、国际化支持等。Play通过直接支持日常任务和热重载来节省宝贵的开发时间,使你能够立即查看工作结果。

Play的轻量级、无状态、面向Web的架构在底层使用了Pekko和Pekko Streams,以提供可预测且最小的资源消耗(CPU、内存、线程)。由于其响应式模型,应用程序在水平和垂直方向上都能自然地扩展。

Play对于数据库访问没有固定的看法,并与许多对象关系映射(ORM)层集成。

它支持Anorm、Slick和JPA,但许多用户使用NoSQL或其他ORM。

Hello World 教程

这个教程描述了 Play 应用程序的工作原理,并向你展示如何创建一个页面,显示一个定制的 Hello World 问候语。

你可以使用任何 Java 构建工具来构建 Play 项目。

该教程演示了 sbt 和 Gradle,因为它们都提供了 Play 所以著称和受欢迎的开发体验,如自动重新加载、清晰的错误消息和模板编译。教程的步骤假设你会在终端中使用 sbt 或 gradlew 命令,但你也可以将 Play 项目集成到你喜欢的集成开发环境(IDE)中。

Starting the project

启动项目之前,请确保已验证运行 Play 所需的要求,并获取相应的示例项目。

你可以克隆 play-samples GitHub 仓库,或者下载其内容作为 zip 文件。

  • Play Java Starter Example
  • Play Scala Starter Example

在相应示例项目的文件夹内,按照 README.md 文件中的步骤运行示例。请注意:当你运行教程应用程序时,它会显示与文档中相同内容和说明的网页。教程中包含一个故意的错误,将文档和应用程序页面在不同的标签页或浏览器中打开,以便在遇到错误时可以查阅文档进行修复。

Play 框架简介

如下图所示,Play 是一个全栈框架,拥有构建 Web 应用程序或 REST 服务所需的所有组件,包括:集成的 HTTP 服务器、表单处理、跨站请求伪造(CSRF)保护、强大的路由机制、国际化支持等等。Play 与许多对象关系映射(ORM)层集成。

它支持 Anorm、Ebean、Slick 和 JPA,但许多用户也使用 NoSQL、其他 ORM,甚至从 REST 服务中访问数据。

[外链图片转存中…(img-p6Givrbd-1706024459489)]

Play 的 API 可以在 Java 和 Scala 中使用。

框架在内部使用了 Pekko 和 Pekko HTTP。这使得 Play 应用程序具有无状态、非阻塞、事件驱动的架构,实现了水平和垂直的可扩展性,并更有效地利用资源。

Play 项目包含 Scala 组件,但由于 Play 具有 Java API,因此 Java 开发人员无需学习 Scala 就能成功使用 Play。

以下是开发人员喜欢使用 Play 框架的一些原因:

  • 其 Model-View-Controller(MVC)架构熟悉且易于学习。
  • 直接支持常见的 Web 开发任务和热重载,节省宝贵的开发时间。
  • 庞大的活跃社区促进知识共享。

Twirl 模板用于渲染页面。Twirl 模板语言:

  • 易于学习
  • 不需要特殊编辑器
  • 提供类型安全
  • 编译后在浏览器中显示错误

要了解更多有关 Play 的优势,请参阅 Play 的介绍和哲学。现在,让我们深入了解一个 Play 应用程序的外观。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/345528.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中仕教育:“三不限”事业编的含义

所谓“三不限”,是指在报考事业单位时,对考生的户籍、年龄、学历不作任何限制。所以全国各地的考生只要符合招聘条件,都可以报考。所以每一年的三不限岗位竞争压力都比较大,报考人数都有很多。 ‘三不限’岗位招考信息在哪里看?…

测试用例评审流程

1:评审的过程 A:开始前做好如下准备 1、确定需要评审的原因 2、确定进行评审的时机 3、确定参与评审人员 4、明确评审的内容 5、确定评审结束标准 6、提前至少一天将需要评审的内容以邮件的形式发送给评审会议相关人员。并注明详审时间、地点及偿参与人员等。 7、 在邮件中提醒…

智慧之光:ChatGPT 引领工作效率新纪元

随着科技的不断发展,人工智能(AI)已经逐渐融入我们的日常生活和工作中。其中,ChatGPT 作为一种先进的 AI 技术,正逐步改变我们的工作方式,提升我们的工作效率。本文灸哥将介绍如何利用ChatGPT提升工作效率&…

数据结构(C语言版)代码实现(三)——单链表部分代码实现

目录 格式 头文件 宏定义 线性表的单链表存储结构 按位查找 插入元素 删除元素 头插法建立单链表 合并非递减单链表 其他基本操作 完整版 测试代码(主函数) 测试结果 格式 参考 2.3节 线性表的链式表示和实现 头文件 宏定义 #pragma onc…

基于机会网络编码(COPE)的卫星网络路由算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1机会网络编码(COPE)概述 4.2COPE算法原理 4.2.1 编码机会预测 4.2.2 编码决策 4.2.3 数据包编码 4.2.4 数据包传输 4.2.5 数据包解码 5.完整程序 1.程序功能…

从零学Java MySQL

MySQL 文章目录 MySQL初识数据库思考:1 什么是数据库?2 数据库管理系统 初识MySQLMySQL卸载MySQL安装1 配置环境变量2 MySQL目录结构及配置文件 连接MySQL数据库基本命令MySQL基本语法:1 查看MySQL服务器中所有数据库2 创建数据库3 查看数据库…

12.前端--CSS-背景属性

1.背景颜色 样式名称: background-color 定义元素的背景颜色 使用方式: background-color:颜色值; 其他说明: 元素背景颜色默认值是 transparent(透明)      background-color:transparent; 代码演示: 背景色…

【裁员潮】技术变革下的职业危机,程序员会有多大影响,又应该如何面对

大家好,我是全栈小5,欢迎阅读文章! 此篇是【话题达人】序列文章,这一次的话题是《技术变革下的裁员潮》 文章将以博主的角度进行讲述,理解和水平有限,不足之处,望指正。 目录 背景硬实力职业危机…

推荐收藏!48道数据分析师高频面试题汇总!

大家好,最近很多小伙伴私信我,讲一下数据分析的面试题,今天给大家整理了48道数据分析师面试时被频繁问到的题目,找数据分析岗位的同学一定要码住认真看。 想了解最新的面试动态、最新高频考点、技术交流的同学,可以文…

notepad++ v8.5.3 安装插件,安装失败怎么处理?下载进度为0怎么处理?

notepad v8.5.3 安装插件,安装失败?下载进度为0,怎么处理? 安装 进度 进度条没有进度 ,然后就退出了,自动打开程序,不知道什么问题,插件管理下面也没有插件显示 找到问题了&#x…

C++ 数论相关题目(欧拉函数)

欧拉函数 给定 n 个正整数 ai ,请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N) 。 若在算数基本定理中,Npa11pa22…pamm ,则: ϕ(N) Np1−1p1p2−1p2…pm−1pm 输…

BGP路由反射-数据中心IDC项目经验

一、背景描述 R1,R2,R3在AS200区域内,R1和R2,R1和R3建立OSPF,宣告接口互联. AS200区域内,R1和R2建立IBGP, R1和R3建立IBGP R2和R4建立EBGP, R3和R5建立EBGP。 网络拓扑: 二、故障现象 R1和R2可以收到来自AS100区域R4的E…

技术驱动宠物健康:宠物在线问诊系统的高效搭建手册

在数字化时代,技术正在催生出许多创新的医疗服务,而宠物在线问诊系统便是其中一项引领潮流的创举。本文将为你提供一份高效搭建宠物在线问诊系统的手册,通过技术代码示例,让你轻松打造一套技术驱动的宠物健康管理系统。 1. 架构…

CSS 楼梯弹弹球

<template><view class="loader"></view> </template><script></script><style>body {background-color: #212121;/* 设置背景颜色为 #212121 */}.loader {position: relative;/* 设置定位为相对定位 */width: 120px;/* 设…

Linux之快速入门

一、Linux目录结构 从Windows转到Linux最不习惯的是什么&#xff1a; 目录结构 Windows会分盘&#xff0c;想怎么放东西就怎么放东西&#xff0c;好处自由&#xff0c;缺点容易乱 Linux有自己的目录结构&#xff0c;不能随随便便放东西 /&#xff1a;根目录/bin:二进制文件&…

【学术论文写作】 鲁棒性实验写作的行文逻辑

文章目录 一、声明二、行文思路三、示例范文一范文二 一、声明 自己总结的&#xff0c;有问题望指正&#xff01; 二、行文思路 为什么要做鲁棒性测试怎么做实验结论对结果的解释 三、示例 PPT 范文一 2022, TIM, “A Robust and Reliable Point Cloud Recognition Netw…

【C++干货铺】C++中的四种类型转换

个人主页点击直达&#xff1a;小白不是程序员 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 C语言中的类型转换 为什么C需要四种类型转化 C强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast RTTI C语言中的类型转换 在C语言中&…

建议CSDN不要这样吃人xue馒头

程序员裁员潮&#xff1a;技术变革下的职业危机 2023年以来&#xff0c;谷歌、阿里巴巴各个科技公司都在裁员&#xff0c;程序员的日子也不好过。 讨论在技术变革下&#xff0c;裁员对于程序员的影响到底有多大&#xff0c;是非常有意义的话题&#xff0c;但是为什么要用“一…

一些es的基本操作

目录 给索引增加字段&#xff1a;给索引删除字段[^1]&#xff1a;创建索引&#xff1a;插入document删除document(应该是按ID) : 给索引增加字段&#xff1a; 用postMan: 给名为population_portrait_hash_seven的索引增加了一个text类型的字段。 用chrome插件Elasticvue 的Re…

MySql索引事务讲解和(经典面试题)

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;MySql&#x1f4d5;格言&#xff1a;那些在暗处执拗生长的花&#xff0c;终有一日会馥郁传香欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 索引 概念 索引的相关操作 索引内部数据结构 事务 为…