Spring Boot项目和传统的Maven项目有什么不同?
没有不同。Spring Boot 项目属于Maven项目,当然,也可以通过Gradle构建,本书设计项目主要使用Maven构建,后面会单独开一章专门将Gradle如何构建。
创建项目
打开网页 Spring Initializr,见图1。
在前面打开的网页中按照图2所示填写,并点击网页底部的GENERATE按钮。
我们的第一个项目只需要完成一个简单的rest接口即可,所以上图右侧的dependecies我只选择了Spring Web。
将下载的zip包解压缩到你希望它呆的地方,并导入你喜欢的IDE。这里使用的是Intellj Idea, 你也可以使用Eclipse或者Spring Tools。通过IDE查看项目结构,如图3所示, 可以看出它是一个标准的Maven工程, 并且提供了一些Spring Boot的基础文件,向我们展示了Spring Boot项目的基本结构。
运行项目
DemoAppApplication.java文件里面包含有main方法,可以直接运行。
当你直接Run的时候, 在控制台中可以看到如下内容。
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _
( ( )\___ | '_ | '_| | '_ / _` |
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.1)
2020-11-24 23:53:23.521 INFO 9592 --- [ main] c.c.hanbinit.demoApp.DemoAppApplication : Starting DemoAppApplication using Java 15 on LAPTOP-740MHR3N with PID 9592 (D:gitdemoApp argetclasses started by hanbin in D:gitdemoApp)
2020-11-24 23:53:23.521 INFO 9592 --- [ main] c.c.hanbinit.demoApp.DemoAppApplication : No active profile set, falling back to default profiles: default
2020-11-24 23:53:24.387 INFO 9592 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2020-11-24 23:53:24.398 INFO 9592 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-11-24 23:53:24.398 INFO 9592 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.39]
2020-11-24 23:53:24.438 INFO 9592 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-11-24 23:53:24.448 INFO 9592 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 868 ms
2020-11-24 23:53:24.568 INFO 9592 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-11-24 23:53:24.698 INFO 9592 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-11-24 23:53:24.708 INFO 9592 --- [ main] c.c.hanbinit.demoApp.DemoAppApplication : Started DemoAppApplication in 1.473 seconds (JVM running for 2.145)
最后一行日志标识着我们的第一个Spring Boot项目已经成功启动了,只是我们的项目里面啥都没有。
添加接口
我们在DemoAppApplication.java中添加部分代码,如图4中红框标识。
在浏览器中输入:http://localhost:8080/sayHello/jack, 可以看到图5所示结果,这标识着我们可以通过对这个项目做简单的代码改动,就可以提供出一个可以被访问的接口。
下面讲下本文例子中使用到的几个注解。
- @RestController 告诉我们这个类会提供一些API接口,这些接口默认会返回JSON格式的数据。不会像@Controller那样进行view间的跳转。
- @GetMapping 告诉我们它修饰的这个方法会提供一个method为GET的接口,其中的内容是这个接口的URI。
- @PathVariable 是用来取@GetMapping中的接口地址中的url传参的。
- @SpringBootApplication 标记这个类里面的main方法启动的是一个Spring Boot应用,并且开启一些列的自动配置。