文章目录
1 前言
1.1 本篇文章内容
SpringBoot的Hello World
Hello Would是所有开发者熟悉一门语言或框架的第一个实例,本系列也从Hello World开始。
因为网上查找的插件,绝大部分在各种操作系统或编写工具上都有问题,本文不使用SpringBoot插件进行创建,而是纯手工编写SpringBoot的各个文件,这样对SpringBoot的认识也会更加深刻.
本篇文章介绍以下知识点:
- 如何创建SpringBoot的项目
- pom.xml的介绍
- SpringBoot启动程序
- SpringBoot的控制程序
- 运行及查看hello world
1.2 前提依赖
1.2.1 开发语言前提
本文默认阅读者已有Java语言的开发基础,如果阅读者没有任何Java的开发基础,请先查找资料学习,以便能更快速的从文中获取有用的知识。
1.2.2 工具前提
本系列笔记使用工具为IntelliJ,关于如何下载及配置IntelliJ 的文章,可以点击这里参考
1.3 内容结构
本系列文章内容结构均用以下顺序进行编写,使用先认识,后了解的方式进行学习
- 提供主要操作步骤,以实现可运行的工程项目
- 总结本章使用目录及文件
- 对各个主要文件代码进行解说
2 主要操作步骤
2.1 创建项目
-
首先在IntelliJ 中创建一个SpringBoot的项目,路径是:
File > New > Project
-
在弹出窗口中做如下选择:
类型选择 = Maven
Project SDK = 选择前提安装的JKD版本
Create from archtype = 什么都不选
点击[Next]按钮
-
输入项目名称,并且选择项目路径,点[Finish]按钮创建项目
-
在新窗口中打开项目
-
创建好的项目,目录如下,只有一个pom.xml文件,其他的目录都是空白的
2.2 修改pom,添加SpringBoot依赖
打开pom.xml文件,添加以下信息
<!-- Spring Boot 启动 依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<!-- Spring Boot web依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
添加完成后,pom.xml文件内容如下,红框内为添加的内容
2.3 创建SpringBoot 启动class
- 创建包路径
右键选择文件夹:src/main/java > New > Package
- 输入包名
可根据自己喜好定义包的名称,这里起名com.sprbtest
- 创建启动Class
右键点击上一步创建的包名 > New > Java Class
- 输入Class名称
可自定义Class名称,这里起名MyHelloWorld
- 完成后,目录结构及Java文件如图
- 在Java文件中输入以下信息
package com.sprbtest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @SpringBootApplication springboot应用的标注
*/
@SpringBootApplication
public class MyHelloWorld {
public static void main(String[] args) {
//启动SpringBoot
SpringApplication.run(MyHelloWorld.class,args);
}
}
完成后目录结构及MyHelloWorld内容如下
2.4 创建controller
- 按照上面一步,在com.sprbtest下面新建一个controller的包
- 在com.sprbtest.controller下创建MyController的java文件
创建完成后,目录及文件结构如下
- 在MyController.java中录入代码如下
package com.sprbtest.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "hello world!!";
}
}
2.5 运行及查看结果
- 右键选择MyHelloWorld,然后选择Run 'MyHelloWorld.main()
当控制台出现以下信息的时候,说明SpringBoot服务器已启动成功
Registering beans for JMX exposure on startup
Tomcat started on port(s): 8080 (http)
Started MyHelloWorld in 3.73 seconds (JVM running for 4.266)
- 打开浏览器,输入http://localhost:8080/hello
可看到controller中的信息
3 文件目录结构说明
文件或目录名称 | 类型 | 说明 |
---|---|---|
SprBoot01\ | 目录 | 项目根目录 |
SprBoot01\pom.xml | 文件 | 全名是Project Object Model,中文翻译成项目对象模型。 用来说明文件配置等信息。本文中用来指定SpringBoot的包,以便自动下载到项目依赖中 |
SprBoot01\src | 目录 | 源文件目录,包括主文件及测试文件 |
SprBoot01\src\main\java\com\ sprbtest\MyHelloWorld.java | 文件 | SpringBoot的启动文件,必备。整个项目中只需要一个启动文件 |
SprBoot01\src\main\java\com\ sprbtest\controller | 文件 | 接收页面请求的控制文件。项目中可以有多个controller。 |
SprBoot01\target\ | 目录 | 编译后的文件,可以不用理会 |
4 主要代码说明
4.1 pom文件
pom文件是Maven的核心文件,主要的作用就是引用各个依赖包,可通过Maven的机制自动下载并配置到项目文件中。
本案例中,pom引入了一个parent,一个dependencies,都是为了声明SpringBoot的框架。如果不通过pom声明Spring框架,在java中import就会报错,因为项目中并没有事先配置Spring框架
<!-- Spring Boot 启动 依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<!-- Spring Boot web依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
关于Parent和Dependency的区别,可以参考这篇文章
4.2 MyHelloWorld.java
SpringBoot启动所用的代码,基本上是固定格式,核心代码只有一行,记得要使用以下代码即可。如果没有该文件,就无法启动SpringBoot的服务
SpringApplication.run(MyHelloWorld.class,args);
4.3 MyController.java
这个是应用的主程序,其中的hello为响应页面http://localhost:8080/hello中"hello"所对应的响应。
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "hello world!!";
}
动手改一改,试试只改动以下代码,重新运行MyHelloWorld.java,然后在页面上输入http://localhost:8080/hello,以及http://localhost:8080/hello22 看看结果是什么
将以下代码
@RequestMapping("/hello")
改为
@RequestMapping("/hello22")
其他代码保持不变。
5 配套代码下载
如果对文中的代码有疑问,可以下载源代码参考