文章目录
一、SpringBoot2基础入门
1.1 为什么要用SpringBoot
因为SpringBoot能够快速创建出生产级别的Spring应用。
他具有以下优点:
- 创建独立Spring应用
- 内嵌web服务器
- 自动starter依赖,简化构建配置
- 自动配置Spring以及第三方功能
- 提供生产级别的监控、健康检查及其外部化布置
- 无代码生成、无需编写XML
但使用SpringBoot也有缺点:
- SpringBoot人称版本帝,迭代快,需要时刻关注变化。
- 封装太深,内部原理复杂,不容易精通
1.2 快速体验SpringBoot
进入整体,我们先来写我们的Helloworld。
先写我们的pom.xml,导入我们的依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
然后写我们的主类:
package com.example.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 主程序类
* @SpringBootApplication 告诉 SpringBoot这是一个SpringBoot应用
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
//固定写法
SpringApplication.run(MainApplication.class,args);
}
}
最后写我们的控制器方法:
注意:springboot默认扫描的是主程序所在的包路径下的所有文件。所以,我们必须把controller包放在com.example.boot包下,否则会找不到你的控制器方法。
package com.example.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//@RestController可以理解成是Controller加ResponseBody
@RestController
public class HelloController {
@RequestMapping("/hello")
public String toHello(){
return "Hello,World!";
}
}
完事后,直接运行主程序代码即可。(连我们的Tomcat我们都省了),运行后,我们可以看到:(他告诉我们他帮我们启动了Tomcat,端口号是8080)
所以,我们直接进入这个地址,然后访问我们的控制器方法:
springboot帮我们写好了所有的配置文件,要修改默认的设置,我们只需要写一个application.properties文件。(必须是这个名字)
然后我们可以设置一下我们的端口号为6666。
server.port=8888
1.3 SpringBoot部署
在SpringBoot中,我们不再需要把我们的包打成war包,而是直接打成jar包。
然后添加这个插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
导入后,我们点击package进行打包。
可以看到,他为我们生成了一个我们项目的jar包。
终止我们IDEA上跑的程序,我们到这个项目目录下,使用指令java -jar 你的jar包的名称即可直接运行你的程序。
注意:运行前要取消掉cmd的快速编辑模式(最后边有操作说明)
此时,我们再登录刚才的页面,仍然能成功显示。这就是SpringBoot的部署,简单方便快捷。
1.4 如何修改Springboot默认的jar包的版本号
SpringBoot的仲裁机制,默认帮我们定义好了所有常用的jar包的版本号,但是,尴尬的是,有时候,比如我们的mysql,springboot给我们定义的是8.x的版本,但是我们的mysql是5.x版本的,怎么办呢?
其实,只需要在pom.xml中使用properties标签定义即可。
<properties>
<mysql.version>5.4.43</mysql.version>
</properties>
顺便说下,这个mysql.version是从哪里来的。
在IDEA中,按住Ctrl键,点击下面框柱部分
然后再按住Ctrl键,单击这个
这些就是所有的jar包对应的版本号了。如果要修改,我们只需要找到对应的标签,然后复制出来直接设置就可以啦。当然了,设置也不能乱设置,要去我们的maven仓库好好找才行哦。
1.5 starter场景启动器
前面我们在pom.xml中写的spring-boot-starter-web就是一个web场景的启动器,他包含所有web需要的常规的依赖。
SpringBoot支持所有的场景可以到官方的这个页面去看。
1.6 SpringBoot修改扫描的包的路径
前面我们已经说了,SpringBoot会自动扫描@SpringBootApplication那个类所在的包及其他的子包。
但是,如果我们一定要写在其他位置的话,也是可以设置的,只需要在@SpringBootApplication标签中使用属性scanBasePackages,值为包的路径,例如,我们把我们的controller包拿出来:
然后修改SpringBootApplication标签的scanPackage属性。
@SpringBootApplication(scanBasePackages = "com.example")
public class MainApplication {
public static void main(String[] args) {
//固定写法
SpringApplication.run(MainApplication.class,args);
}
}
运行主程序,访问hello方法成功。
1.7 取消cmd的快速编辑模式
右键cmd的头,选择属性,
将下面的勾勾点掉后单击确定即可。