springboot介绍
springboot是用来整合框架的
相当于生活中的:买房子,买精装修好的,提箱入住就行了,里面什么东西都已经配置好了。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。成为SpringBoot全家桶。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9a94ea91fe580e1d15794ee7318ee1e7.png)
Springboot是用来整合框架的,相当于车架
框架相当于组织,整合资源
把框架整合在一起,开发效率高
Mybatis框架整合了jdbc,结果集转换
Springboot框架整合了mybatis,springmvc,spring Mybatis
像一个学校整合了授课老师,辅导员老师
Springboot你一个国家整合了很多公司。 整合实现了积中资源办大事的优势。
怎么用?
在一个maven项目,在pom.xml中添加parent
访问start.spring.io,生成maven项目
练习一:发短信(自己尝试着做)
https://doc.yuntongxun.com/p/5a533e0c3b8496dd00dce08c 发短信
SDK参考:
https://doc.yuntongxun.com/p/5f0299f4a80948a1006e775e
练习二:发邮件
https://blog.csdn.net/qq_38157825/article/details/104792574 QQ邮箱配置教程
创建SpringBoot项目
生成项目
Spring官网https://start.spring.io 可以生成项目。
创建项目springboot01-test
不能访问https://start.spring.io,就导入webDemo
Snapshot是快照版本,可以认为是个临时版本,不是正式版本,每次编译时,maven都会去服务器上下载最新的。
M2是增加重要功能的版本,不是正式版本。
下图中的java版本要选择你电脑上存在的 我装的是JDK 8
导入生成的项目
将网站生成的springboot01-test.zip拷贝到eclipse工作区中,解压 File→import
打开File→import
点击Next > 点击Browse >选中刚刚解压的springboot01项目
最后 Finsh >完成
Pom.xml中parent介绍
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
第一次创建springboot项目,需要几分钟时间下载
<properties>
<java.version>8</java.version>
</properties>
Java版本改成11会报错。修改java版本要执行mave→nupdate Project
项目结构介绍
目录介绍
不要启动测试类
@SpringBootTest
class Springboot01TestApplicationTests {
@Test
void contextLoads() {
}
}
练习:如何修改别人给你的模板
修改start.spring.io生成的模板
链接:https://pan.baidu.com/s/1xcmsZMhZupVrMEaeDAamHA
提取码:8f9b
解压webDemo 放到eclipse工作空间
修改项目文件夹为springboot02
修改pom.xml中的artifactId和name为springboot02
Eclipse中以Maven项目导入。
File→import →maven → Existing Maven Projects →pom.xml
创建网页
Html要放在src\main\resources\static文件夹中。
点击static > 右键 > Other > Wizards: 中搜索 html
修改html名字为:index
点击ok
自己对html中的页面效果进行修改,我就改了个网页名字/加了个h1标签
打开src\main\resources\下的application.properties修改端口号,修改端口号为1314
server.port=1314
一个程序可以占用多个端口号
正常启动
关闭服务器
在console中点红色按钮关闭服务器
端口号占用会报以下信息
Description:
Web server failed to start. Port 8081 was already in use.
然后打开WebDemoApplication > 右键 Run As启动
@springbootApplication标识这是一个springboot程序。
http://localhost:8080/index.html
http是协议用来传输网页,还有ftp,smtp
😕/是固定的
Localhost代表本机
8080是端口号,一台服务器有多个端口号,可以在appliction.properties中修改,
一个端口号只能被一个程序使用,vue-element的端口号是9537,mysql的端口号是3306
端口号前必须有:是小写的
浏览器打开 http://localhost:1314/ ,1314是我们之前自己设置的端口号
重点:我们继续修改端口号
再次启动
启动成功
我们在启动一次
可以发现(端口号被占用,怎么解决呢?)
点击旁边的像电脑一样的按钮,选择1,也就是上次执行的结果
回到上次结果后,结束掉上次的执行结果:
然后我们第二次执行,我们发现可以执行了
我们复制application.properties
粘贴修改为application.yml
在执行中我们尽量避免把端口写在application.properties中,
所以新建一个application.yml来替代
如果两个文件都写了端口,那么默认以application.properties 内的端口为主。
测试执行
Controller的使用
用户能随便通过浏览器访问一个java方法吗?如访问支付宝中的一个方法。
@RestController的作用是允许用户通过浏览器来访问这个类,
@GetMapping(“/test”),当用户输入/test时执行test()方法
package com.tedu.webDemo;
import org.springframework.web.bind.annotation.RestController;
@RestController
//通知springmvc为UserController创建对象
//不用程序员创建对象了
public class UserController {
//springmvc创建对象执行构造方法
//console中点红色按钮关闭前面启动的程序
//main() run as --> java application
//console 看到tomcat started on port 1314
//console中会显示userController构造方法
public UserController() {
System.out.println("userController构造方法");
}
}
框架的底层原理:就像生活中的驾驶员,你只需要开车就行了,不需要懂里面什么发动机的执行原理,
打开WebDemoApplication ,执行
执行结果:
操作:我们新建一个包net
在包中,我们创建一个ItemController.java类
package net;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ItemController {
//1.console中点红色关闭以前的程序
//2.找到main() run as
//3.console中会显示tomcat started on port
//4.console中有没有显示ItemController()
public ItemController() {
System.out.println("ItemController()");
}
}
打开WebDemoApplication ,run As运行
运行后,我们会发现,无法运行,因为:所有的constroller必须放在主包的controller包中
我们把net包中的ItemController.java类移动到com.tedu.webDemo包中
package com.tedu.webDemo;
import org.springframework.web.bind.annotation.RestController;
//所有的constroller必须放在主包的controller包中
@RestController
public class ItemController {
//1.console中点红色关闭以前的程序
//2.找到main() run as
//3.console中会显示tomcat started on port
//4.console中有没有显示ItemController()
public ItemController() {
System.out.println("ItemController()");
}
}
运行结果:
我们发现可以被执行了
Controller中读取yml中的配置信息
添加一个@GetMapping(“/index”)注解
@RestController的作用是允许用户通过浏览器来访问这个类,
@GetMapping(“/index”),当用户输入/index时执行index()方法
@value()是从application.yml中读取配置信息
package com.tedu.webDemo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
//通知springmvc为UserController创建对象
//不用程序员创建对象了
public class UserController {
//通过浏览器直接访问服务器上一个方法,不行,不安全。
//https://localhost:1314/UserController/login
//get 请求
//map(key,value)通过key可以找到value
//key是/login,value是login()
//http://localhost:1314/login
@GetMapping("/login")
public String login() {
return "登录成功";
}
//springmvc创建对象执行构造方法
//console中点红色按钮关闭前面启动的程序
//main() run as --> java application
//console 看到tomcat started on port 1314
//console中会显示userController构造方法
public UserController() {
System.out.println("userController构造方法");
}
}
运行结果:
打开application.yml
案例:酒店管理系统
有一万家酒店用我们的系统
系统做完后,生成的jar
不能在java文件中写死了,在application.yml中声明信息,程序中读取信息
添加如下内容
#框架定义好的属性
#port和name: 前面有2个空格
#:后面有一个空格
server:
port: 1314
#company.name是程序员自定义的
tedu:
name: 淡若清风
从application.yml中读取配置信息
package com.tedu.webDemo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
//通知springmvc为UserController创建对象
//不用程序员创建对象了
public class UserController {
//从application.yml中读取配置信息
@Value("${server.port}")
String port;
@Value("${company.name}")
String name;
//通过浏览器直接访问服务器上一个方法,不行,不安全。
//https://localhost:1314/UserController/login
//get 请求
//map(key,value)通过key可以找到value
//key是/login,value是login()
//http://localhost:1314/login
//选中项目右键run as -->maven install
@GetMapping("/login")
public String login() {
return "port="+port+",name"+name;
}
//springmvc创建对象执行构造方法
//console中点红色按钮关闭前面启动的程序
//main() run as --> java application
//console 看到tomcat started on port 1314
//console中会显示userController构造方法
public UserController() {
System.out.println("userController构造方法");
}
}
运行结果:
生成jar包
选中项目右键 run as→maven install
执行jar包
资源管理器中找到项目的target文件夹,在地址栏中输入cmd,进入dos.
把上面路径删除,输入CMD:
进入到jar所在路径,然后执行java直接运行jar文件,启动web服务。
命令如下:
java -jar springboot02-0.0.1-SNAPSHOT.jar --server.port=80 --company.name=清风
java -jar springboot02-0.0.1-SNAPSHOT.jar --server.port=81 --company.name=CSDN
查看进程
运行窗口输入CMD
输入命令:
where jps
jps -l