《精通Spring MVC 4》——第1章 快速搭建Spring Web应用 1.1Spring Tool Suite简介

简介: 为Web应用生成一个JAR文件?将Web应用打包为JAR文件,这一点你们可能会觉得有些诡异。尽管仍然可以将其打包为WAR,但这并不是推荐的实践。在默认情况下,Spring Boot将会创建一个胖JAR包(fat JAR),这个JAR包中包含了应用所有的依赖,提供了通过“java-jar”命令便捷启动Web应用的方法。

本节书摘来自异步社区《精通Spring MVC 4》一书中的第1章,第1.1节,作者:【美】Geoffroy Warin著,更多章节内容可以访问云栖社区“异步社区”公众号查看

第1章 快速搭建Spring Web应用

在本章中,我们将会直接接触代码并搭建一个Web应用,本书的其他章节将会基于该应用进行讲解。

在这里,我们将会使用Spring Boot的自动配置功能来构建应用,这样的话,就能完全避免使用样板式的配置文件。

本书中将会使用Gradle和Java 8,但是也不必为此感到担心。如果你还在使用Maven和更早版本的Java的话,相信你会发现这些技术也是很易于使用的。

很多官方的Spring教程同时提供了Gradle构建和Maven构建,因此,如果你决定继续使用Maven的话,也能很容易地找到样例。Spring 4完全兼容Java 8,如果你不采用Lambda表达式来简化代码库的话,那真的是很遗憾的事情。

本书同时还会为你展示一些Git命令。笔者认为,跟踪工作进展并在稳定的状态进行提交是一件好事。另外,这样还能很容易地将你的工作成果与本书提供的源码进行对比。

本书第9章将借助Heroku部署我们的应用,建议从一开始就使用Git对代码进行版本管理。在本章中,关于如何开始使用Git,我会给出一些建议。

1.1 Spring Tool Suite简介

如果要开始学习Spring并使用Spring社区所提供的指南和Starter项目的话,那么最好的起步方式之一就是下载Spring Tool Suite(STS)。STS是一个自定义版本的Eclipse,它被用来与各种Spring项目进行协作,它同时还包括Groovy和Gradle功能。即便如此,你可能像我一样,还会使用其他的IDE,但是,我强烈建议你给STS一个机会,因为它通过“Getting Started”项目,能够让你快速地了解Spring广阔的生态系统。

还推荐你下载“Groovy Eclipse”以及“Groovy 2.4 compiler”,如图1-1所示,在本书的后文中,介绍使用geb构建验收测试时会用到它们。

screenshot

图1-1

现在,在起步阶段,提供两种可选方案。

第一个方案是使用“File | New | Spring Starter Project”导航菜单,如图1-2的截屏所示。这里的可选项是与http://start.Spring.io相同的,只不过嵌入到了IDE中。

screenshot

图1-2

通过使用顶部菜单中的“File | New | Import Getting Started Content”,我们可以看到http://spring.io上所有的可配置项,这里可以选择使用Gradle或Maven,如图1-3所示。

screenshot

可以下载Starter代码,并按步骤学习本书中的内容,也可以直接下载完整的代码。
screenshot

图1-3

在“Getting Started Content”中有很多有意思的内容,建议读者自行对其进行一下探索。它阐述了如何将Spring与各种读者可能感兴趣的技术进行集成。

此时,将会生成一个Web项目,如图1-3所示,这是一个Gradle应用,会生成JAR文件并使用Java 8。

表1-1是我们想要使用的配置。

screenshot

在第2个界面中,将会询问你想要使用的Spring Boot版本以及想要添加进工程的依赖。

在编写本书的时候,Spring Boot的最新版本是1.2.5,请确保你始终选择最新的版本。

当你阅读本书的时候,可以使用最新的快照版本。如果到那时Spring Boot1.3还没有发布的话,那么你可以试一下快照版本。
在配置窗口的底部会有一些复选框,代表各种Spring Boot starter库。它们是可以添加到构建文件中的依赖项,针对各种Spring项目,它们提供了自动配置功能。

现在只关心Spring MVC,所以只选中Web这个复选框。

screenshot

为Web应用生成一个JAR文件?将Web应用打包为JAR文件,这一点你们可能会觉得有些诡异。尽管仍然可以将其打包为WAR,但这并不是推荐的实践。在默认情况下,Spring Boot将会创建一个胖JAR包(fat JAR),这个JAR包中包含了应用所有的依赖,提供了通过“java-jar”命令便捷启动Web应用的方法。
你点击了“Finish”按钮了吗?如果已经点击了的话,将会得到如图1-4所示的项目结构。

screenshot

图1-4

可以看到主类MasterSpringMvcApplication及其测试类MasterSpringMvc ApplicationTests,还可以看到两个空的文件夹——static和templates,它们分别用来存放静态Web资源(图片、样式文件等)和模板(jsp、freemarker或Thymeleaf)。最后一个文件是空的application.properties,它是Spring Boot默认的配置文件。这是一个很便利的文件,在本章中,将会看到Spring Boot如何使用它。

对于构建文件build.gradle,稍后将会详细介绍。

如果你觉得已经准备就绪,那么运行应用的主方法,这样就能会启动一个Web服务器。

要做到这一点,切换至应用的主方法,然后右键点击该类,并在工具栏中导航至“Run as | Spring Application”,或者点击工具栏上绿色的Play按钮。

遵循上面的步骤,并导航至http://localhost:8080,此时会产生一个错误,不必担心,请继续往下阅读。

接下来将为读者展示如何不使用STS来生成相同的项目,然后再回过头来看这些文件。

相关文章
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
697 157
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
8月前
|
缓存 安全 Java
《深入理解Spring》过滤器(Filter)——Web请求的第一道防线
Servlet过滤器是Java Web核心组件,可在请求进入容器时进行预处理与响应后处理,适用于日志、认证、安全、跨域等全局性功能,具有比Spring拦截器更早的执行时机和更广的覆盖范围。
|
11月前
|
前端开发 Java API
Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
本文解析了Spring Cloud Gateway中出现“Unsupported transfer encoding: chunked”错误的原因,指出该问题源于Feign依赖的HTTP客户端与服务端的`chunked`传输编码不兼容,并提供了具体的解决方案。通过规范Feign客户端接口的返回类型,可有效避免该异常,提升系统兼容性与稳定性。
794 0
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
412 1
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
509 7
|
Web App开发 编解码 vr&ar
使用Web浏览器访问UE应用的最佳实践
在3D/XR应用开发中,尤其是基于UE(虚幻引擎)开发的高精度场景,传统终端因硬件局限难以流畅运行高帧率、复杂效果的三维应用。实时云渲染技术,将渲染任务转移至云端服务器,降低终端硬件要求,确保用户获得流畅体验。具备弹性扩展、优化传输协议、跨平台支持和安全性等优势,适用于多种终端和场景,特别集成像素流送技术,帮助UE开发者实现低代码上云操作,简化部署流程,保留UE引擎的强大开发能力,确保画面精美且终端轻量化。
754 17
使用Web浏览器访问UE应用的最佳实践
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
458 19
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
295 61
|
云安全 数据采集 安全
阿里云热门云安全产品简介:Web应用防火墙与云防火墙产品各自作用介绍
在阿里云的安全类云产品中,Web应用防火墙与云防火墙是用户比较关注的两款安全产品,二者在作用上各有侧重,共同构成了阿里云强大的安全防护体系。本文将对Web应用防火墙与云防火墙产品各自的主要作用进行详细介绍。

热门文章

最新文章