翻译自 http://spring.io/guides/tutorials/web/。

首发于 http://my.oschina.net/u/179755/blog/232777。

在本教程中,您将学习如何使用Spring来创建产品级别的Web应用程序。


Spring和Web应用程序

Web应用程序已经成为我们生活的核心部分,从购物到寻找最近的ATM机。Web应用程序,服务器软件通过HTTP传送HTML,来实现Web应用程序。

Spring可以帮助您构建从一个小的内部应用程序扩展到那些服务于数百万用户和数以千计的并发请求的Web应用程序。

无论您是开始使用Spring来构建Web应用程序,或者只是出于好奇想来看看用Spring构建的Web应用程序的样子,你来对地方了。

您将构建什么

Yummy面馆正在走向世界。它希望建立一个交互式的Web应用程序,为客户提供最新的Yummky面条菜单,允许他们下订单,并在准备面条的过程中监控他们的订单状态。

你将扩展Yummy面馆的现有应用程序,增加Web组件以允许查看菜单,创建和查看订单状态。

您将需要什么

  1. 每个部分30分钟。您将能够在1个星期的午休时间很舒适地学习完整个教程,或者您也可以选择在周末完成整个教程。

  2. 代码副本。(可以通过git或者从网页上下载zip文件来获取)

  3. 一个您选择的IDE。Spring建议使用STS,它是可以免费获得的。

下载和运行代码

如果您下载整个代码,你将发现本教程的每个部分都对应一个文件夹,命名为1,2,3等。在根目录下有一份初始代码,每个部分的文件夹下有完成代码。

初始代码包含:

  1. 项目布局

  2. 本教程初建的核心领域和事件类

  3. 这些类的一些基本单元测试类

每个部分的完成代码包含了初始代码,加上在该部分完成时构建的代码。

您可以选择从初始代码开始,拷贝粘贴整个教程,最后运行程序。或者你也可以从某个部分的完成代码开始,打开每个文件,阅读源代码以理解整个教程。

本教程使用Gradle(还包含了Gradle包装器)来构建程序,所以你不需要去安装任何软件就可以运行代码。

例如,如果你想获取初始代码并运行,你只需要执行如下命令即可

$ git clone https://github.com/spring-guides/tut-web.git

$ cd tut-web/initial

$ ./gradlew clean test

执行完上面的命令后,你可以检查build/reports/tests,看看里面所有的测试结果。

如果你想跳转到最后一部分,第6部分,并执行Web应用程序和它的测试,你只需要

$ cd ../6/complete

$ ./gradlew tomcatRunWar

同时在另一个终端中

$ ./gradlew test

一些部分可以不用运行整个Web应用程序就能执行测试。

Yummy面馆应用程序架构和核心域

该应用程序的当前架构显示在下面的“救生圈”图中:

救生圈图是一个辅助工具,用于构建遵循六角架构(Hexagonal Architecture)原则的应用程序,六角架构有时也被称为“端口和适配器”,最初由Alistar Cockbum提出。这个救生圈图展示了你的应用程序的核心内部域,以及随之包围在外的集成域。这些域直接映射到我们后面整个教程都将涉及的包和组件中,所以救生圈图是一个用来了解事物都在哪里的很好的方式。

打开最初的项目,我们会发现这个救生圈图映射到src/main/java/com/yummynoodlebar下的不同包中。

核心应用程序的顶层包,即com.yummynoodlebar.core包含了如下:

  1. 域(domain)。清楚地表达了应用程序的核心域概念的组件。这些类是核心领域的通用语言的一种表现。

  2. 服务(service)。收到事件时要执行的动作组件。

花点时间来熟悉每个包中的组件。可以在该初始项目src/test文件夹中找到核心域组件的测试类。它们将让你理解这些组件是怎么使用的。

Web

Web前端将Web浏览器及它们的使用者跟我们的应用程序整合起来。因此,Web前端作为我们应用程序的核心的外围存在,如下图示:

鉴于我们的应用程序和外部世界之间的集成,我们需要考虑设计和实现方面的约束:

  1. 用户体验(UX)是我们的焦点;核心应用程序结构不应该影响到Web前端的设计。

  2. 用于组成我们的Web域的组件需要以某种让使用者适应的速率持续演进。

  3. 我们的Web组件不应该包含任何我们应用程序的核心逻辑,但是它们会跟我们的应用程序的核心域组件进行协作,以实现服务接口的必要功能。

教程路线图:

第1步:核心和Web域建模

第2步:实现URL和返回数据

第3步:配置基本应用程序

第4步:使用Thymeleaf创建HTML视图

第5步:接受用户提交的数据

第6步:增强Web应用程序安全

小结及下一步。

转载于:https://my.oschina.net/u/179755/blog/232777

使用Spring设计和实现Web应用程序 开发指引(一)相关推荐

  1. 计算机网络课程设计之简单 Web Server 程序的设计与实现

    前言 本实验是实现一个简易的webserver,我们一直在访问网站,甚至还做过Web课程设计,部署过Tomcat等等,所以说这次实验能更深入的了解其原理 白嫖容易,创作不易,本文原创,转载请注明!!! ...

  2. java局部网内通话杂音_在Spring Boot反应式Web应用程序上启用SSL,并在控制台中对该打印进行http调用时出现异常噪音...

    在我创建了我的spring boot反应式Web应用程序以支持SSL之后,当我尝试对服务器进行http调用时,它会在控制台中的异常跟踪下面打印 . 作为应用程序所有者,我无法阻止任何人使用我的服务 . ...

  3. [渝粤教育] 商丘职业技术学院 Java Web应用程序开发 参考 资料

    教育 -Java Web应用程序开发-章节资料考试资料-商丘职业技术学院[] 简述B/S结构和C/S结构,各自的优缺点? web前端基础 第1单元 网上书店系统开发准备 1.[单选题]主流的动态网页技 ...

  4. 【JavaScript UI库和框架】上海道宁与Webix为您提供用于跨平台Web应用程序开发的JS框架及UI小部件

    Webix是Javascript库 一种软件产品 用于加速Web开发的 JavaScript UI库和框架 Webix用于跨平台Web应用程序开发的JS框架,为您提供102个UI小部件和功能丰富的CS ...

  5. python的web应用程序开发(Django框架)

    python的web应用程序开发(Django框架) 1.安装Django并开启网页服务器 pip install django # 安装Django包 django-admin startproje ...

  6. ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试

    想必大家之前在进行ASP.NET Web 应用程序开发期间都有用到过将我们的网站部署到IIS自定义主机域名并附加到进程进行调试. 那我们的ASP.NET Core Web 应用程序又是如何部署到我们的 ...

  7. [HTML5]移动Web应用程序开发 HTML5篇 (四) 多媒体API

    介绍 本系列博客将主要介绍如今大红大紫的移动Web应用程序开发最重要的三个工具:HTML5,JavaScript, CSS3. 本篇是HTML5介绍的第三篇,主要介绍HTML5的Canvas API. ...

  8. 第一章 Web应用程序开发基础

    一.HTTP协议工作机制 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它是一种主流B/S架构中应用的通信 ...

  9. WEB应用程序开发与部署

    WEB应用程序开发与部署 来自:http://www.atguigu.com/

最新文章

  1. SQL Server 插入含有中文字符串出现乱码现象的解决办法
  2. VC++中线程同步技术分析3
  3. arm nodejs_ARM发布Cortex A78C增强版大核架构
  4. Golang笔记——单元测试
  5. java 查看虚拟机状态_深入理解java虚拟机学习笔记(四)虚拟机性能监控与故障处理工具...
  6. 这个机器学习论文大众评审网站,要让每篇arXiv论文都得到讨论
  7. 综合评价法——秩和比(RSR)
  8. 微信公众号、订阅号、服务号区别
  9. vmware上用kali破解wifi
  10. HTML基础 - HTML文本格式
  11. autoit3 ie.au3 函数之——_IEErrorNotify
  12. 这些数据结构基本概念你晓得几个嘞?
  13. 体育赛事直播系统的实践之路
  14. STM32F103ZET6开发板实现跑马灯实验
  15. ubuntu卡在无限循环登录界面,进不去桌面的问题#不重装是我们最后的倔强!#
  16. iOS MultipeerConnectivity
  17. 【杂记】火狐浏览器主页被2345恶意篡改解决方法
  18. pyspark mysql rdd_PySpark之RDD操作
  19. 华为公布未来五年规划:将发展高端手机
  20. Python爬取豌豆荚软件分类

热门文章

  1. 2022火爆了金三银四的前端社招面经
  2. 凭什么要“答而不辩,疯狂道歉”?
  3. 洛谷 P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
  4. 商标侵权如何认定?侵犯商标权应该如何赔偿?
  5. Graybox Overview
  6. 古驰美妆官方旗舰店登陆天猫奢品
  7. 想用抖音赚钱,又不想真人出镜,不妨试试音乐号
  8. 微软RAW格式补丁下载,让 Windows7 直接支持预览和查看 RAW 格式图片文件!
  9. Java ~ Reference【总结】
  10. 微信小程序毕业设计论文下厨房|菜谱+后台管理系统项目源代码