转载请声明出处!
Spring Boot是一个非常棒的运用程序开拓框架。大多数人可能会利用这个框架来创建基于Web的运用程序 - MVC运用程序或基于RESTFul API的运用程序。这些运用程序可以支配到Docker容器中,成为微做事。
本教程将向同学们展示利用Spring Boot创建基于Web运用程序的过程。它是一个独立的Java运用程序。内置一个嵌入式Tomcat做事器。可以处理Web页面的各种要求。对付新手来说,每个新起项目,最困难的部分便是项目环境配置部分。但跟随本教程,你将创造利用Spring Boot创建web项目与利用Spring v3 / v4 MVC创建运用程序比较,切实其实要大略得不要不要的。
项目构造
在开始之前,先展示项目的目录和文件构造:
两个Java文件。一个是程序入口类。另一个是MVC掌握器。
一个properties属性文件,里面是一些项目配置值。
三个静态文件,可在要求时直接供应给用户。
一个JSP文件,用作MVC运用程序的视图模板。
如果我们利用springmvc的旧方法来配置web项目,则须要在项目web.xml里配置spring容器和spring mvc容器,这至少须要两个pring xml配置文件。而在这里,统统都利用Java注释来进行配置。
POM XML文件让我们从POM XML文件开始。POM XML文件用于Maven构建。它指定了如何编译和打包项目。以下是此文件的内容:
这个POM文件有几个主要的事情。第一个是指定maven构建将创建WAR存档的行:
第二个是POM文件具有父POM依赖性。这许可下载许多Spring和非Spring依赖项并将其链接到此项目中:
三个是将Java编译设置为利用JDK 1.8的属性定义:
末了一个是利用Spring Boot maven插件进行编译和打包:
依赖项部分定义了此运用程序所需的额外依赖项。我须要的是Spring MVC,并作为J2EE Web运用程序运行。添加的依赖项用于编译JSP视图和运行嵌入式运用程序做事器。
主程序入口接下来,开始我们程序编码。spring boot项目,程序都有必须有一个入口主类,以下是主类的完全源代码:
该App类从SpringBootServletInitializer扩展而来。它能被Spring Framework识别,并将类App作为传统的WAR包进行初始化和实行。它还见告Spring Framework将有WEB-INF文件夹及个中的资源供给用。
在App类中,有一个名为configure()的受保护方法。它用于指定任何特定于运用程序的配置。它只有一行,它接管App类的类型并创建一个SpringApplicationBuilder工具并返回。这样做的是,创建的SpringApplicationBuilder工具将自动扫描App类,它所在的包,以及任何带注释的类的子包,以及包含Spring配置的注释。然后它将基于这些配置构建Spring运用程序。这是按老例进行集成的范例示例。并且统统都通过依赖注入耦合。
静态main方法只有一行,它将类App的类型和任何其他命令行参数通报给SpringApplication.run()。在幕后,这门课做了很多。它将隐式地对当前包和所有子包进行组件扫描。如果须要,开拓职员还可以添加其它路径包为扫描目标。开拓职员可以为所需的任何其他配置添加额外的注释。对付这个大略的程序,只有MVC掌握器类可以处理用户对页面的要求。
MVC掌握器接下来是我们的MVC掌握器类。这是一个非常大略的类,只有一个方法可以处理来自用户的HTTP GET要求,并带有一些查询参数。它通过利用JSP页面作为视图来相应。源代码如下:
类中代码没有什么新鲜的。也便是说,该掌握器类的定义与任何Spring MVC掌握器的定义相同。我们大略走读一下类实现:
类用@controller注释:表示它是一个掌握器类。
类只有一个方法来处理HTTP GET要求。它用@requestmapping注释。注释定义了要求的子路径以及它可以处理的http方法get要求。
方法创建一个ModelAndView工具并返回。视图页面称为“testme”。数据模型只是一个将显示在页面上的字符串。
该方法接管一个参数,该参数来自查询参数,称为“sayit”。
全体类的功能,便是当用户在浏览器地址栏输入以下路径时,进行相应处理:
http://localhost:8080/meow?sayit=This+is+pretty+crazy
为了让这个掌握器按预期事情,还须要一些额外的配置。它在application.properties文件中完成。
Application.properties属性文件application.properties须要指定视图模板文件的前缀和后缀。
如果您做过spring mvc项目,或者你知道,web项目须要创建和配置一个org.springframework.web.servlet.view.internalResourceViewResolver类型的工具,而这个工具须要指定两个属性:
意思是运用程序在“WEB-INF/JSP/”文件夹中查找视图模板。文件扩展名是“.jsp”。
ok,现在我们已经有了主程序入口类、掌握器类和内部资源视图解析器的设置。末了一块是视图模板。
JSP模版本教程的视图模板非常大略,只有一个JSP文件演示如何显示视图模型中的数据:
在这个JSP文件中,有三件事:
有级联样式表文件。它是一个静态文件,通过JSTL标记添加。这哀求JSTL库已经精确地引入到了项目中。
视图模型只有一个元素,并通过$mymessage添加到视图中。
在HTML内容的末端添加了一个javascript文件,加载后将实行该文件。这是为了演示在这个项目中静态文件的利用。
让示例运用程序供应静态内容是非常主要的。它供应了超越Spring MVC的方法——静态页面和javascript可用于单页Web运用程序。而且,利用Spring勾引很随意马虎得到静态内容,后面会再阐明这一点。
静态文件Spring Boot供应了很多便利,让开发职员能够快速上手开拓。
这些便利是通过一个约定来实现的:
当您利用Spring Boot开拓的运用程序指定为基于Web的运用程序时,您所须要做的便是在src/main/resources下创建一个名为“static”的文件夹。
在这个“静态”文件夹中,只需根据须要添加任何子文件夹,并将任何静态内容文件放入个中,就可以为它们供应做事。以本案例程序为例,我有三个指定为静态内容的文件:
级联样式表的文件——src/resources/static/assets/css/index.css一个javascript文件——src/resources/static/assets/js/test.js一个HTML文件——src/resources/static/test.html那么,用户如何通过浏览器访问这些静态内容呢?这很随意马虎。假设运用程序正在运行,并且假设运用程序运行的网站的URL是http://localhost:8080/(在这没有特定的运用程序高下文),那么用户可以利用以下URL查看这些静态内容文件的实际内容:
http://localhost:8080/assets/js/test.js
http://localhost:8080/assets/css/index.css.
http://localhost:8080/assets/test.html.
有一些方法可以配置Spring勾引运用程序在其他位置查找静态内容文件,WEB-INF和JSP位置也是如此,运用程序如何初始化,以及Spring勾引运用程序如何事情的许多其他方面。这些不是本教程中谈论的主题,但是如果你对Spring Boot有足够的理解,这些主题就微不足道了。我可能会在往后的文章中先容个中的一些。
构建和运行运用程序在构建项目之前,请转到src/main/resources/static/assets/js文件夹,并将文件“test.sj”重命名为“test.js”。
要构建此运用程序,请在命令行掌握台中运行以下命令:
mvn clean install
当您第一次运行此运用程序时,它将下载用于构建此运用程序的所有依赖项,这可能须要一些韶光。之后,后续的构建将花费更少的韶光。
要运行Web运用程序,还可以利用命令行掌握台:
java -jar target\boot-war-1.0.0.war
如果统统顺利,并且您可以构建运用程序,那么实行将在末了输出类似这样的结果:
正如我之条件到的,利用Spring勾引创建Web运用程序非常大略、方便。这种便利性的关键是去掉所有凌乱无章的配置,这样人们就可以专注于开拓过程中最主要的部分,设计出符合终极产品愿景的产品。除此之外,Spring Boot还有一个很酷的地方,那便是它可以快速支配到Docker虚拟机中。因此,它非常适宜开拓微做事。
那么,接下来的便是编写那些更加繁芜的关于Spring的事情,例如数据访问、身份验证和授权。敬请期待。可以转发关注下,往后会持续更新!