使用Maven方式构建Spring Boot项目
准备好项目运行所需的环境后,可以使用IDEA开发工具搭建一个Spring Boot入门程序了。我们既可以使用Maven方式构建项目,也可以使用Spring Initializr快捷方式构建项目。这里,先介绍如何使用Maven方式构建Spring Boot项目,具体步骤如下。
1.初始化IDEA配置
如果是初次下载安装IDEA工具或者未打开任何项目,会先进入IDEA欢迎页,具体如图1所示。
图1 IDEA欢迎页
为了避免后续每个项目都要配置Maven和JDK,这里我们在IDEA中统一配置Mavan和JDK,具体方式如下。
(1)Maven初始化设置
打开IDEA进入欢迎页,单击页面右下角的【Configure】→【Project Defaults】→【Settings】选项进入默认项目设置页面,在左侧搜索“Maven”关键字找到Maven设置选项,在右侧对应的设置界面中进行初始化设置,具体如图2所示。
图2 Maven初始化设置
如图2所示,在Maven设置界面对Maven安装目录(Maven home directory)、Maven的settings配置文件(User Settings file)和Maven本地仓库地址(Local repository)进行了设置。当然,读者可以根据自己的情况配置Maven选项,配置完成后,单击【Apply】—>【OK】按钮即可完成Maven的初始化设置。
(2)JDK初始化设置
在IDEA欢迎页面,单击【Configure】→【Project Defaults】→【Project Structure】选项进入Project Structure设置页面,在界面左侧选择【Project Settings】→【Project】选项,在打开的右侧页面中对JDK初始化设置,具体如图3所示。
图3 JDK初始化设置
在图3中,可以通过单击右侧页面的【New】按钮选择自定义安装的JDK路径,设置完成后,单击【Apply】—>【OK】按钮完成JDK的初始化配置。
2.创建Maven项目
在IDEA欢迎页面,单击图1-1所示的【Create New Project】按钮创建项目,具体如图4所示。
图4 项目类型选择设置
在图4中,左侧罗列的是可以选择创建的项目类型,包括Spring项目、Androdid项目、Spring Initializr项目(即Spring Boot项目)、Maven项目等,右侧是不同类型项目对应的设置界面。这里,左侧选择【Maven】选项,右侧选择当前项目的JDK(上一步预先设置的JDK环境),单击【Next】按钮进入填写项目标识的页面,具体如图5所示。
图5 Maven项目创建
在图中,GroupId表示组织ID,一般分为两个字段,包括域名和公司名;ArtifactId表示项目唯一标识符,一般是项目名称;Version表示项目版本号。此处,将GroupId设置为com.itheima,ArtifactId设置为manual_chapter01,并使用默认生成的版本号。单击【Next】按钮进入填写项目名称和路径的页面,具体如图6所示。
图6 项目创建图
在图6中,Project name用于指定项目名称,在上一步中定义的ArtifactId会默认作为项目名;Project location用于指定项目的存储路径,默认会存放在C盘下。此处,我们使用上一步设置的manual_chapter01作为项目名称,存放路径可以单击右侧的【…】按钮修改。项目名称和存放路径设置好之后,单击【Finish】按钮完成项目的创建。
项目创建完成后,会默认打开创建Maven项目生成的pom.xml依赖文件,同时在右下角会弹出“Maven projects need to be imported(需要导入Maven依赖)”的提示框,具体如图7所示。
图7 Maven项目构建效果图
在图7中,“Maven projects need to be imported”提示框有两个选项:“Import Changes”表示导入版本变化,只会导入本次变化的依赖;“Enable Auto-Import”表示开启自动导入,后期会持续监测并自动导入变化的依赖。这里选择“Enable Auto-Import”选项,自动导入pom.xml文件中依赖文件的变化。
至此,使用IDEA开发工具进行Maven项目的初始化搭建已经完成,但是该项目目前只是一个空的Maven项目,要构建Spring Boot项目,还需要额外进行一些工作。
3.添加Spring Boot相关依赖
打开manual_chapter01项目下的pom.xml文件,在该pom.xml文件中添加构建Spring Boot项目和Web场景开发对应的依赖,示例代码如下。
<!-- 引入Spring Boot依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<!-- 引入Web场景依赖启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
上述代码中,<parent>标签中添加的spring-boot-starter-parent依赖是Spring Boot框架集成项目的统一父类管理依赖,添加该依赖后就可以使用Spring Boot的相关特性;<version>标签指定Spring Boot的版本号是2.1.3.RELEASE;<dependencies>标签中添加的spring-boot-starter-web依赖是Spring Boot框架对Web开发场景集成支持的依赖启动器,添加该依赖后就可以自动导入Spring MVC框架相关依赖进行Web开发。
小提示:
在项目pom.xml文件中导入新依赖或修改其他内容后,如果参考前面介绍的选择勾选了“Enable Auto-Import”选项,通常会自动更新而无需手动管理。但有些情况下,依赖文件可能还是无法自动加载,这时候就需要重新手动导入依赖文件,具体操作方法为:右键单击项目名—>Maven—>Reimport进行依赖重新导入即可。
4.编写主程序启动类
在manual_chapter01项目的java目录下创建一个名称为com.itheima的包,在该包下新建一个主程序启动类ManualChapter01Application,内容如文件1所示。
文件1 ManualChapter01Application.java
1 import org.springframework.boot.SpringApplication;
2 import org.springframework.boot.autoconfigure.SpringBootApplication;
3 @SpringBootApplication // 标记该类为主程序启动类
4 public class ManualChapter01Application {
5 // 主程序启动方法
6 public static void main(String[] args){
7 SpringApplication.run(ManualChapter01Application.class,args);
8 }
9 }
文件1中,第3行代码中的@SpringBootApplication注解是Spring Boot框架的核心注解,该注解用于表明ManualChapter01Application类是Spring Boot项目的主程序启动类。第7行代码调用SpringApplication.run()方法启动主程序类。
5.创建一个用于Web访问的Controller
在com.itheima包下创建名称为controller的包,在该包下创建一个名称为HelloController的请求处理控制类,并编写一个请求处理方法,内容如文件1-2所示。
文件2 HelloController.java
1 import org.springframework.web.bind.annotation.GetMapping;
2 import org.springframework.web.bind.annotation.RestController;
3 @RestController // 该注解为组合注解,等同于Spring中@Controller+@ResponseBody注解
4 public class HelloController {
5 @GetMapping("/hello")//该注解等同于Spring框架中@RequestMapping(RequestMethod.GET)注解
6 public String hello(){
7 return "hello Spring Boot";
8 }
9 }
文件2中,请求处理控制类HelloController和请求处理方法hello()上都使用了注解,其中:
●@RestController注解是一个组合注解,包含@Controller和@ResponseBody两个注解,主要作用是将当前类作为控制层的组件添加到Spring容器中,同时该类中所有方法的返回值不是以页面视图名而是以JSON格式对象的形式返回;
●@GetMapping注解等同于@RequestMapping(method=RequestMethod.GET)注解,主要作用是设置方法的访问路径并限定其访问方式为Get。文件2中,hello()方法的请求处理路径为“/hello”,并且方法的返回值是一个“hello Spring Boot”的字符串对象。
6.运行项目
运行主程序启动类ManualChapter01Application,项目启动成功后,在控制台上会发现Spring Boot项目默认启动的端口号为8080,此时,可以在浏览器上访问“http://localhost:8080/hello
”,具体如图8所示。
图8 程序测试效果
从图8可以看出,页面输出的内容是“hello Spring Boot”,至此,一个简单的Spring Boot项目就完成了。