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 应用程序的外观。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题——LeetCode1331.数组序号转换

方法一 排序哈希Map 首先用一个数组保存排序完的原数组,然后用一个哈希表保存各元素的序号,最后将原属组的元素替换为序号后返回。 var arrayRankTransform function(arr) {let set new Set(arr)let sortArrArray.from(set).sort((a,b)>a-b)let ma…

对Vue有状态组件和无状态组件的理解及使用场景

目录 一、Vue框架 二、Vue的有状态组件 三、Vue的无状态组件 四、有状态组件和无状态组件的区别 一、Vue框架 Vue是一款流行的JavaScript框架,用于构建用户界面。它被设计为易学易用的,同时也具备强大的功能和灵活性。 Vue具有以下特点&#xff1a…

【AI视野·今日NLP 自然语言处理论文速览 第七十五期】Thu, 11 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 11 Jan 2024 Totally 36 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Leveraging Print Debugging to Improve Code Generation in Large Language Models Authors Xueyu Hu, Kun K…

03 SpringBoot实战 -微头条之首页门户模块(跳转某页面自动展示所有信息+根据hid查询文章全文并用乐观锁修改阅读量)

1.1 自动展示所有信息 需求描述: 进入新闻首页portal/findAllType, 自动返回所有栏目名称和id 接口描述 url地址:portal/findAllTypes 请求方式:get 请求参数:无 响应数据: 成功 {"code":"200","mes…

Linux中Iptables使用

概念:网络中的防火墙,是一种将内部网络和外部网络分开的方法,是一种隔离技术 作用: 防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中的黑客破坏企业网络&…

MYSQL数据库基本操作-DQL-基本查询

一.概念 数据库管理系统一个重要功能就是数据查询。数据查询不应是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。 MySQL提供了功能强大,灵活的语句来实现这些操作。 MySQL数据库使用select语句来查询数据…

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

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

GPT-5不叫GPT-5?下一代模型会有哪些新功能?

OpenAI首席执行官奥特曼在上周三达沃斯论坛接受媒体采访时表示,他现在的首要任务就是推出下一代大模型,这款模型不一定会命名GPT-5。虽然GPT-5的商标早已经注册。 如果GPT-4目前解决了人类任务的10%,GPT-5应该是15%或者20%。 OpenAI从去年开…

【JavaEE进阶】 MyBatis使用XML实现增删改查

文章目录 🎍前言🍀配置连接字符串和MyBatis🍃写持久层代码🚩添加mapper接⼝🚩添加UserInfoXMLMapper.xml🚩单元测试 🌴增(Insert)🚩返回⾃增id 🎋删(Delete)&…

【Vue3】组件通信

Vue3组件通信和Vue2的区别: 移出事件总线,使用mitt代替。vuex换成了pinia。把.sync优化到了v-model里面了。把$listeners所有的东西,合并到$attrs中了。$children被砍掉了。 1. props 若 父传子:属性值是非函数。若 子传父&…

泡泡玛特旗下IP亮相2024米兰时装周 LABUBU等化身时尚观察员​

2024年1月14日,在意大利米兰时装周上,泡泡玛特旗下IP THE MONSTERS成员LABUBU、ZIMOMO惊艳亮相PRONOUNCE珀琅汐2024秋冬大秀现场,作为时尚观察员的LABUBU和ZIMOMO以其独特的潮玩形象打动了顶级时尚圈。 据了解,泡泡玛特和PRONOUNC…

Qt简介及安装

“这不属于我,因为沉默背后也有冲动” 在互联网当中,最关注的几个比较核心的岗位: 🛶 后端开发 🛶 前端开发 🛶 算法工程师 🛶 游戏开发 像后端开发中有认识…

VUE+Vis.js鼠标悬浮title提前显示BUG解决方法

在使用VUEVis.js做拓扑图,利用鼠标悬浮放在图标展示设备信息时,发现鼠标一放在图标上面时,标题表会提前在放置的元素下显示,鼠标再放到图标上去元素才会隐藏变成悬浮状态 解决方法: 添加一个div元素,设置v…

linux修改文件夹下所有文件的权限(常用)

1、 修改文件夹下所有文件的权限 # filename为要修改的文件夹名字。-R应该是表示递归修改filename文件夹下所有文件的权限 sudo chmod -R 777 filename2、linux修改单个文件夹权限 sudo chmod 600 (只有所有者有读和写的权限) sudo chmod 644 &#…

Java 设计者模式以及与Spring关系(七) 命令和迭代器模式

简介: 本文是个系列一次会出两个设计者模式作用,如果有关联就三个,除此外还会讲解在spring中作用。 23设计者模式以及重点模式 我们都知道设计者模式有3类23种设计模式,标红是特别重要的设计者模式建议都会,而且熟读于心&#…

什么是EJB?

什么是EJB? EJB (Enterprise JavaBeans) 是一种用于开发企业级应用程序的 Java 服务器端组件模型。它是一种分布式对象架构,用于构建可移植、可伸缩和可事务处理的企业级应用。 EJB 提供了一种将业务逻辑组件化、模块化的方式,使开发人员能够…

李跳跳派大星v2.2.0软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! 李跳跳派大星v2.2.0最新安卓版是一款功能强大的Guang告屏蔽软件。它为用户提供了一种快速、便捷的方式来去除各种软件中的开屏Guang告,让…

《WebKit 技术内幕》学习之五(4): HTML解释器和DOM 模型

4 影子(Shadow)DOM 影子 DOM 是一个新东西,主要解决了一个文档中可能需要大量交互的多个 DOM 树建立和维护各自的功能边界的问题。 4.1 什么是影子 DOM 当开发这样一个用户界面的控件——这个控件可能由一些 HTML 的标签元素…

Spring Security 之摘要认证

摘要认证 注意: 在现代应用程序中不应该使用摘要认证,因为它不被认为是安全的。最明显的问题是你必须以明文或加密或 MD5 格式存储密码。所有这些存储格式都被认为是不安全的。相反,你应该使用单向自适应密码哈希(如 bCrypt、PBKDF2、SCrypt 等)来存储凭据,而这是摘要认…

STL第一讲

一、认识headers、版本、重要资源 1. C Standard Library和Standard Template Library 前者:c标准库;后者直译为“标准模板库” 区别: C标准库:是c编译器提供的自带的头文件(不带.h后缀)新版兼容C的头文件的形式cxxxx;旧版的xxx…