JAVA进阶 springboot框架基础

springboot介绍

springboot是用来整合框架的

在这里插入图片描述

相当于生活中的:买房子,买精装修好的,提箱入住就行了,里面什么东西都已经配置好了。


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

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=清风

http://localhost:80/
在这里插入图片描述

java -jar springboot02-0.0.1-SNAPSHOT.jar --server.port=81 --company.name=CSDN
在这里插入图片描述

查看进程

运行窗口输入CMD
在这里插入图片描述输入命令:
where jps
jps -l
在这里插入图片描述

一个程序产生了两个进程。每个进程监听的端口号不一样。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值