1 SpringBoot 的定义
与 maven 整合了所有的 jar 包一样,SpringBoot 整合了所有的框架,使得开发者可以更快地进行开发。
Java 开发的发展过程:JS + Servlet + Tomcat → JS + SpringMVC + Spring + MyBatis → Vue + SpringBoot → …… ;可以看到,所有的技术框架均遵循一条主线规律,即从一个复杂应用场景衍生出一种使用配置文件的规范框架,然后当配置文件过多时,开始提倡“约定大于配置”从而衍生出一站式的解决方案。
目前 Spring 家族已经有很多很多的框架,具体查看点击传送门
2 第一个 SpringBoot 程序
1 创建一个新项目,同时选择 spring initializr;
2 填写项目信息;
3 选择初始化的组件;
4 等待项目构建完成;
通过上面步骤完成了基础项目的创建,就会自动生成以下文件:
- 程序的主启动类,之后自己所有需要运行的包都需要放在该启动类的同级目录下,否则 SpringBoot 识别不到(约定大于配置);
- 一个 application.properties 配置文件;
- 一个测试类;
- 一个 pom.xml 配置文件。
非常熟悉的结构:
5 在启动类的同级目录下新建 controller 包,并编写如下代码,和 SpringMVC 相同;
// 还没忘记吧,当使用 RestController 注解时,方法返回的是 JSON 字符串,
// 而使用 Controller 注解时,返回的是链接
@RestController
public class HelloSpringBoot {
@RequestMapping("/hello")
public String hello(){
return "Hello Sharm, welcome to SpringBoot";
}
}
6 分析一下 pom.xml 文件
<!-- 下面是自动生成的配置文件,如下内容的含义写在了注释中 -->
<dependencies>
<!-- web 依赖,其中包括 Tomcat、XML、dispatchServlet 等-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 打 jar 包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- 打包是忽视测试用例 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!--跳过项目运行测试用例-->
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
7 点击运行后,浏览器出现如下字符,则运行成功(都不需要配置 tomcat 了)。
8 运行时出现的问题
问题一: 控制台提示"错误: 找不到或无法加载主类 springboot.Application"
解决办法:首先点击 maven 栏的 clear,再点击 install 即解决;
问题二:对应的 url 可以通过在 application.properties 中增加 server.port=8081
进行修改;
3 将 SpringBoot 程序打包运行
1 点击 maven 工具栏的 package;
2 在 target 文件夹中找到打包好的 jar 包
3 利用 java 执行器成功实现运行