初识 SpringBoot 入门

目录

SpringBoot介绍

定义

特点

SpringBoot全新的pom.xml

pom.xml

eclipse第一个SpringBoot Project

创建maven project

Update Maven

修改pom.xml

创建RunApp.java

创建HelloController.java

测试

IDEA第一个SpringBoot Project

创建SpringBoot project

配置maven

创建RunApp.java

创建HelloController.java

测试

扩展

执行过程

常见问题:8080端口冲突


SpringBoot介绍

定义

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。成为SpringBoot全家桶。
在这里插入图片描述

特点

  • 创建独立的Spring应用程序
  • 嵌入的Tomcat,无需部署WAR文件
  • 简化Maven配置
  • 自动配置Spring
  • 提供生产就绪型功能,如指标,健康检查和外部配置

SpringBoot全新的pom.xml

pom.xml


它产生整个项目目录,其实我们只需pom.xml文件,覆盖本地maven工程的pom.xml文件。

注:可以使用idea直接创建springboot项目,其本质也是去调用上面的网站,只不过在本地访问外网https://start.spring.io。

修改pom.xml后,把项目进行maven-update 操作,下载依赖的jar包。

 

<?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>

eclipse第一个SpringBoot Project

创建maven project

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZgF4fWWt-1622611944851)(RackMultipart20210602-4-13yqzr7_html_88f4cadbf675bacc.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DffVpOg5-1622611944853)(RackMultipart20210602-4-13yqzr7_html_f3dbe5180a64a7d2.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uug3y2Lk-1622611944856)(RackMultipart20210602-4-13yqzr7_html_c9324fdf83114f10.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ZM90rdZ-1622611944859)(RackMultipart20210602-4-13yqzr7_html_69c7e96ed9eaee87.png)]
在这里插入图片描述

Update Maven

默认jdk1.5,早已经过气,改成jdk1.8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dXNey224-1622611944861)(RackMultipart20210602-4-13yqzr7_html_4ba30fa51de53570.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YDahcycS-1622611944862)(RackMultipart20210602-4-13yqzr7_html_56330a3490f4e16f.png)]

 

修改pom.xml

添加SpringBoot的依赖包

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.tedu</groupId>
  <artifactId>jkboot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
   <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.2</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<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>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>
 

创建RunApp.java

SpringBoot使用了全新的运行方式,两句话,直接执行main方法,默认启动tomcat中间件,端口为8080。

注意:类必须放在其他类的父级目录,它底层使用了包扫描机制,扫描的要求只扫描本类所在的目录极其子目录。

package cn.tedu.jk;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication  //标识为springboot项目
public class RunApp {
	public static void main(String[] args) {
		//全新的启动方式,执行run方法会自动启动集成的tomcat中间件
		SpringApplication.run(RunApp.class, args);
	}
}

创建HelloController.java

目前市场主流已经采用注解方式进行开发

package cn.tedu.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController//接受浏览器的请求 并返回json数据
public class HelloController {
//	@RequestMapping("hi")//只匹配一个路径
	@RequestMapping({"hi","hello/hi"})//匹配两种路径/hi或者/hello/hi
	public String hi() {
		return "hi springboot!";
	}
}

启动Tomcat WebServer
ApacheTomcat是一个非常著名的web中间件,于之前学习的技术的不同在于它提供了web程序的容器环境,专门用于网站服务。

SpringBoot默认集成了tomcat中间件,会自动把项目打包jar发布到tomcat,这样我们就形成了自己的网站。但这个网站只能局域网访问,如果外网(广域网),自己购买一个网站,部署上去即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EHxq1c8h-1622611944864)(RackMultipart20210602-4-13yqzr7_html_b6ffad0fd1bf396a.png)]

 

注意:不用服务时,关闭tomcat服务

在这里插入图片描述

测试

http://localhost:8080/hello/hi				 # 某个web服务的根请求
http://localhost:8080/hi							# /hi的某个具体请求

 

url解析:

  • localhost代表本机,等价于ip:127.0.0.1
  • 8080代表本机的服务,tomcat默认端口8080
  • /hi等请求地址在一个web服务中请求具有唯一性(多个就没法区分了)

IDEA第一个SpringBoot Project

创建SpringBoot project

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WR1TVNk9-1622611944867)(RackMultipart20210602-4-13yqzr7_html_1f3c0383b05ee183.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NXvX74GV-1622611944868)(RackMultipart20210602-4-13yqzr7_html_d7d122b951eddced.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xKEmqpMV-1622611944870)(RackMultipart20210602-4-13yqzr7_html_b398aadf7efff605.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fZhoD53H-1622611944873)(RackMultipart20210602-4-13yqzr7_html_8fcdb23f7d430ca1.png)]
在这里插入图片描述

配置maven

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1GCJYPcj-1622611944874)(RackMultipart20210602-4-13yqzr7_html_a6fdf2899a929f84.png)]

 

创建RunApp.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);
    }

}

创建HelloController.java

package cn.tedu.cotroller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController//接受浏览器的请求 并返回json数据
public class HelloController {
   
    //	@RequestMapping({"hi","hello/hi"})//匹配两种路径/hi或者/hello/hi
    @RequestMapping("hi")//只匹配一个路径
    public String hi() {
        return "hi springboot!";
    }

}

测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4rZhgvxa-1622611944876)(RackMultipart20210602-4-13yqzr7_html_d22efd4149555a01.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6KdsoB85-1622611944878)(RackMultipart20210602-4-13yqzr7_html_321e9fd69c397f66.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D4CPxrkD-1622611944881)(RackMultipart20210602-4-13yqzr7_html_812f002efb1212b0.png)]

扩展

执行过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nA2MGVwt-1622611944882)(RackMultipart20210602-4-13yqzr7_html_bd1136079b713306.png)]

url** 的解析执行过程:**

浏览器输入的url,就会被解析后传入web中间件(/hi),web中间件再会进一步的解析,找到对应的Controller的某个注解里对应的url @RequestMapping({"/","/hi"}) ,从而就找到HelloController的hi()方法。最终利用反射执行这个类的方法(将来这个方法中就用来编写实现业务逻辑代码)。因为使用了@RestController,返回的String字符串对象底层会使用jackson工具类转换java对象为json字符串,返回给浏览器,浏览器将字符串回显(展示)在页面上。
 

常见问题:8080端口冲突

Tomcat服务不会自动关闭,需要手动关闭,如不关闭,下次启动就会报下面错误:

port 8080 was already in use. 端口8080已经被占用。关闭服务,重新启动即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gZ1E9rTG-1622611944884)(RackMultipart20210602-4-13yqzr7_html_bf8f36feda26a498.png)]

 

仍未解决的话,以下三种方式任选一个来测试.

1,需要执行DOS命令处理:

C:\Users\lpx>netstat –ano  --查看所有端口号,找到8080端口对应的PID号
C:\Users\lpx>taskkill -pid 688 –f --杀死688进程号 

 

2,可能是因为电脑里安装过Oracle数据库:

要找到Oracle的服务OracleXETNSListener,停掉.

 

3,直接使用yml方式配置修改端口号:

在src/main/resources下添加application.yml文件,内容如下:

server:
  port: 8090

清除项目缓存,再次重启服务,测试即可: http://localhost:8090/hello/hi

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ez1SAusA-1622611944886)(RackMultipart20210602-4-13yqzr7_html_2e15298de6e12e4.png)]

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值