目录
一、SpringBoot介绍
1、定义
设计目的是用来简化新Spring应用的初始搭建以及开发过程。
它本身是包容万象的,可以跟各种技术集成。成为SpringBoot全家桶。
SpringBoot就是整合了maven包和Tomcat服务器的工具。
2、特点
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
二、SpringBoot的pom.xml文件
1、pom.xml
修改maven包pom.xml文件添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.tedu</groupId>
<artifactId>jk</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>jk</name>
<description>Demo project for Spring Boot</description>
<!-- 提供相关的 Maven 默认依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<!-- 使用jdk8 -->
<java.version>1.8</java.version>
</properties>
<!-- 添加依赖 -->
<dependencies>
<!-- 使用springmvc构建程序并使用默认的嵌入式容器Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 使用Junit测试springboot程序 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- 添加插件 -->
<plugins>
<!-- springboot添加maven插件,会打包成一个可以直接运行的 JAR 文件,直接部署到服务器 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
三、IDEA创建Spring Boot Project工程
1、创建SpringBoot project
2、配置maven
注意:创建好maven项目后,立即IDEA最下方暂停下载maven的jar包,先Seting配置maven,然后再启动下载,下载完后刷新,保证jar包下载到了指定的本地仓库D盘
配置完后,点击pom.xml文件刷新下载maven包
注意:<artifactId>spring-boot-maven-plugin</artifactId>可能报错,不用处理
3、启动服务器Tomcat
在Java文件夹中找到自动生成的启动类:
如果没有生成就自己创建:
package cn.tedu.cotroller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
@SpringBootApplication
@Controller
public class RunApp {
public static void main(String[] args) {
SpringApplication.run(RunApp.class, args);
}
}
4、在服务器端添加资源
在启动类同级包下添加类资源:
1) “hi”表示访问的方法
2)端口号默认8080,代表程序
3)localhost指IP地址,工作当中会给地址,
4)retrun返回的是网页上展示的内容
5)@RestController只能在类上使用,@RestController加在类上面的注解,使得类里面的每个方法都将json串/xml数据,返回到前台页面中。效果相当于@Contriller+@ResponseBody,只是书写方便
6)@RequestMapping 注解可以在控制器类的级别和/或其中的方法的级别上使用。
在类的级别上的注解会将一个特定请求或者请求模式映射到一个控制器之上。之后你还可以另外添加方法级别的注解来进一步指定到处理方法的映射关系。
5、测试
1) 每次使用都要重启服务器Tomcat,把第四步控制台左边红方框点击一下关闭
2)重新运行服务器main()方法
3)在网页中输入“http://localhost:8080/hi”,即可在网页上看到return的内容
package cn.tedu.cgb2105boot02;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("123")//该方法可以写在类上,叫作123的类
public class LearnJava {
//localhost:8080/123/OK
@RequestMapping("OK")
public int learn(){
return 123;
}
/*同类时方法名不能相同,为了使服务器区分调用具体哪个方法*/
//localhost:8080/123/OK1
@RequestMapping("OK1")
public int learn1(){
return 123456;
}
}
6、访问顺序
四、常见问题
8080端口冲突
Tomcat服务不会自动关闭,需要手动关闭,如不关闭,下次启动就会报下面错误:
port 8080 was already in use. 端口8080已经被占用。关闭服务,重新启动即可。
解决方案三选一:
1、需要执行DOS命令处理:
C:\Users\lpx>netstat –ano --查看所有端口号,找到8080端口对应的PID号
C:\Users\lpx>taskkill -pid 688 –f --杀死688进程号
2、可能是因为电脑里安装过Oracle数据库:
停掉Oracle
步骤:此电脑--》右键管理--》右键服务和应用程序--》双击服务--》找到OracleXETNSListener右键停止
3、直接使用yml方式配置修改端口号:
1)方式一:在src/main/resources下添加application.yml文件,内容如下:
server: port: 8090
清除项目缓存,再次重启服务,测试即可: http://localhost:8090/hello/hi
2)方式二:在期初创建SpringBoot的Project项目时src/main/resources下有一个application.properties后缀文件,把它复制到指定module下的src/main/resources中,在application.properties文件里添加server.port:9999
清除项目缓存,再次重启服务,测试即可: http://localhost:9999/hello/hi
注意:修改端口号,前端页面地址也要跟着修改,否则报错