javaEE -----Spring Boot

文章目录

  • 一、什么是javaEE
  • 二、Maven
  • 三、Spring boot
  • 四、第一个Spring Boot 项目

一、什么是javaEE

JavaEE主要是学习对各种框架的学习, 以及如何把这些框架应⽤在企业中, 来实现⼀些web开发

1. 什么是框架

框架将产品的共性提取出来,是一个实现了部分功能的半成品,之后我们可以将这个半成本自主进行装修,成为“成品”

2. 主要学习什么

  1. 共涉及4个框架的学习: Spring, Spring Boot, Spring MVC,Mybatis
  2. 其中Spring, SpringBoot, Spring MVC 可以看做是⼀家⼈, 属于Spring 家族的产品
  3. Mybatis 是⼀个持久层框架, 主要是⽤来帮助我们更好的操作数据库

二、Maven

1. 什么是Maven

Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包

pom.xml⽂件就是 maven 的配置⽂件,⽤以描述项⽬的各种信息

  • Maven 的主要功能
    • 项目构建
    • 管理依赖

2. 如何创建一个Maven项目

IDEA本⾝已经集成了Maven, 我们可以直接使⽤, ⽆需安装,File -> New -> Project

3. 功能:项目构建

提供了一系列相当于快捷键的命令,当进行修改操作后,不需要走完所有流程

打包就是把所有的class⽂件, 全部放在⼀起, 打成jar包或者war包
(1)jar包和war包都是⼀种压缩⽂件
(2)jar包就是把开发⼈员已经写好的⼀些代码进⾏打包. 打好的jar包就可以引⼊到其他项⽬中, 也可以直接使⽤这些jar包中的类和属性. 另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执⾏
(3)war包可以理解为是⼀个web项⽬,⾥⾯是项⽬的所有东西, 通常⽤于⽹站

4. 功能:管理依赖

依赖:指当前项⽬运⾏所需要的jar包

(1) 依赖配置

使用JDBC时, 我们需要⼿动下载mysql-connector-java的包.并且添加到项⽬中

如果使⽤Maven, 我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了

<dependencies>
 <!--⾥⾯放置项⽬的依赖坐标, 可为多个 -->
</dependencies>
  1. 在pom⽂件 标签内, 添加依赖坐标
<dependency>
	 <groupId>mysql</groupId>
	 <artifactId>mysql-connector-java</artifactId>
	 <version>8.0.30</version>
 </dependency>
  1. 点击刷新按钮, 引⼊新加⼊的依赖jar包
  2. 刷新完之后, 就可以在项⽬中看到新加⼊的jar包

javaEE -----Spring Boot_第1张图片

(2) 依赖传递
早期没有使用Maven时,如果A依赖B,B依赖C,那么A项目引⼊B 的同时, 也需要引⼊C如果我们⼿动管理这个依赖, 这个过程就会⽐较⿇烦, 我们需要知道每个库都依赖哪些库, 以及这些依赖之间的版本是如何关联的

但使⽤maven的话, 就可以避免管理所需依赖的关系。我们只需要在pom⽂件中, 定义直接依赖就可以了, 由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊

此时也把依赖分为【直接依赖(儿子依赖爸爸)】和【间接依赖(孙子依赖爷爷)】

(3) 排除依赖

排除依赖:主动断掉某些不怎么需要的依赖(被排除的资源⽆需指定版本)

<dependency>
	 <groupId>org.springframework</groupId>
	 <artifactId>spring-core</artifactId>
	 <version>6.0.6</version>
	 <!--排除依赖-->
	 <exclusions>
		 <exclusion>
			 <artifactId>spring-jcl</artifactId>
			 <groupId>org.springframework</groupId>
		 </exclusion>
	 </exclusions>
</dependency>

(4) 依赖调解

当项目中的依赖存在冲突时,如A->B->C->X(1.0),A->D->X(2.0)

Maven会采⽤最短路径优先的原则去选择依赖,这⾥2的依赖路径更短,所以会选择X(2.0), 当然我们也可以选择指定某个依赖的版本

当然也可以指定X的版本

5.所需插件

(1) Maven Help

作用:观察包和包之间的依赖关系
安装:安装插件: File -> Settings ->Plugins -> 搜索’Maven Help’ -> 找到对应插件, 点击Install 安装即可, 安装后需要重启下idea, 才能⽣效

6.Maven 仓库

(1) 概述

在Maven中, 根据 groupId、artifactId、version(三者合起来叫【坐标】) 的配置, 来唯⼀识别⼀个 jar 包, 缺⼀不可

当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他下载下来, 添加到项⽬中. 这个Jar包下载的地⽅就称为仓库

(1)仓库:⽤于存储资源,管理各种jar包
(2)Maven仓库的本质就是⼀个⽬录(⽂件夹),这个⽬录被⽤来存储开发中所有依赖(jar包, 插件等)

(2)本地仓库

本地仓库: ⾃⼰计算机上的⼀个⽬录(⽤来存储jar包)
当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包

  • 如果有,则在项⽬直接引⽤
  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库

本地仓库地址可以通过Maven配置查看:File -> Settings

javaEE -----Spring Boot_第2张图片

修改仓库地址
选override,copy原文件地址到想要的地方,然后修改

(3)中央仓库

中央仓库: maven 软件中内置⼀个远程仓库地址,就是中央仓库,服务于整个互联⽹. 由 Maven 团队维护,全球唯⼀

  • 仓库地址:https://repo1.maven.org/maven2/
  • 可以通过https://mvnrepository.com 这个⽹站来查询并下载

我们可以把⾃⼰写好的Jar包上传到中央仓库(具备⼀定的要求), 也可以从中央仓库下载Jar包

查找Jar的坐标

  1. 访问 https://mvnrepository.com/
  2. 进⾏查找, ⽐如mysq
  3. 选择要添加的Jar包版本
  4. 查看Jar包对应坐标

(4)私服

私服: ⼀般由公司团队搭建的私有仓库,属于某个公司/部门,需要一定的权限才能进入

有了私服之后, Maven依赖下载的顺序⼜发⽣了变化

当Maven需要下载资源的时候

优先级:本地仓库 — 私服 — 中央仓库
如果最后中央仓库里资源不存在,会报错。如果存在,就先缓存在私服上之后,再缓存到本地仓库⾥, 再为Maven的下载请求提供服务

私服是很多⼈在使⽤的, 所以只需要第⼀个使⽤者下载⼀次就可以了

(5)Maven 设置国内源

因为中央仓库在国外, 所以下载起来会⽐较慢, 所以咱们选择借助国内⼀些公开的远程仓库来下载资源

也就相当于在私服和中央仓库之间,再加入了一个国内源

配置国内源需要两个方面

  1. 当前项目
  2. 新项目

三、Spring boot

1.介绍

Spring Boot是基于Spring Framework来进⾏开发的, 但是Spring Framework存在配置多, ⼊⻔难的问题, 为了简化开发者的使⽤, SpringBoot就诞生了

Spring Boot 就是 Spring 框架的脚⼿架,可以快速开发 Spring 框架

2.Spring Boot 项目创建

  1. 安装Spring Boot Help插件
  2. 项目创建
    javaEE -----Spring Boot_第3张图片
    javaEE -----Spring Boot_第4张图片

(1)SpringBoot版本 , 选择任意2.X的,不带snapshot的(通过代表的是不稳定版本) 这个版本会随着SpringBoot的升级⽽发⽣变化, 不固定,3.X版本使⽤的是jdk17
(2)打勾表⽰创建项⽬之初, 就引⼊的第三⽅依赖(框架, 插件, 组件等…后⾯再细讲)
(3)所有引⽤的第三⽅框架

注意

  • 第⼀次打开 Spring Boot 项⽬需要加载很久,因为当前 Spring Boot 框架并没有在⾃⼰的本地仓库
  • 为了加速 Spring Boot 项⽬的下载,在打开项⽬之前,请先确认⾃⼰的 Maven 已经配置为国内源

javaEE -----Spring Boot_第5张图片
社区版本需要手动把relase去掉,版本只要是2.X就行

3. 项目代码介绍

(1)pom 文件

pom.xml⽂件⾥的具体信息, 不需要过度关注, 我们主要看< dependencies>标签⾥⾯的内容

pom⽂件中, 引⼊了两个依赖

  • spring-boot-starter-web:包含了web应⽤开发所需要的常见依赖
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖

javaEE -----Spring Boot_第6张图片

(2)父工程

每⼀个SpringBoot⼯程,都有⼀个父工程依赖的版本号

⽗⼯程指定版本号后, 就会⾃动引⼊和所指定版本对应的依赖, 创建的SpringBoot项⽬, 会继承SpringBoot父工程

所以没有指定版本的子工程也可以正常运行

javaEE -----Spring Boot_第7张图片

4. 目录介绍

javaEE -----Spring Boot_第8张图片

javaEE -----Spring Boot_第9张图片
注意事项:文件夹的颜色不能搞错

如何设置:

方法一:右键文件夹 ---- Mark Directory as — 自主选择
javaEE -----Spring Boot_第10张图片

方法二:File — Project Structure — Modules

javaEE -----Spring Boot_第11张图片
javaEE -----Spring Boot_第12张图片

四、第一个Spring Boot 项目

Spring Boot可以帮助我们与浏览器进行交互

(1)请求响应分析

Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080

浏览器输入url,进行请求,而请求的对象路径 -----> 计算机 ----> 端口号 ----> 具体的方法路径

而请求是发送给服务器的, 服务器根据浏览器传来的请求(是哪个端口号,那个方法),进行响应,即返回到浏览器界面上

SpringBoot 内置了Tomcat服务器(一个web服务器), ⽆需配置即可直接运⾏

Tomcat 对上,联系浏览器,主要就是根据浏览器的请求,返回数据,对下,就是处理客户端的HTTP请求,而HTTP协议还是主要负责客户端和服务器这边的通信,起到制定规则的作用

2. 代码

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

@RestController     
public class UserController {
 @RequestMapping("/sayHi")
 	public String sayHi(){
 		return "hello,Spring";
 	}
}
  • @RestController 路由映射,可以让浏览器连接程序,提供类上注解
    • 路由映射:浏览器输入url后,将请求对应到应用程序中某个类的某个方法
    • 虽然@RequestMapping 已经命名了,但是只有@RequestController后,Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping
  • @RequestMapping 可以修饰方法,也可以修饰类
    • 相当于建了一个门牌号码,创建了一个方法路径
    • 访问地址:类的路径 + 方法路径,如果类上注解没有,直接访问方法路径
    • 推荐写法
      (1)/ 可以省略,建议企业开发时,统一加上,前加后不加
      (2)开发中,建议加上类路径,可以避免重复,以及方便寻找代码
  • 方法名,没必要和方法路径一样。但是因为取名字太难,一般还是搞成一样的

你可能感兴趣的:(Java,EE,进阶,java-ee,spring,boot,java)