南皮做网站/网络营销策划ppt
一些名词的碎碎念:
1> 俩种网络应用设计模式
C/S 客户端/服务器
B/S 浏览器/服务器
俩者对比:
2> 集群和分布式的概念
集群:
分布式:
例子:
一个公司有一个人身兼多职
集群: 招聘N个和上面这个人一样身兼多职
分布式: 招聘N个人,分担上面这个人的工作,进行工作的拆分.
工作中常常把集群和分布式统称为分布式.
1. Maven的配置
1.1 认识Maven
概念: Maven是一种项目管理工具.基于POM(Project Object Model,项目对象模型)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工作软件.
简而言之: Maven就是一个项目管理的工具,我们直接通过pom.xml配置文件把jar包坐标放进去,就可以获得并使用jar包了,不必手动去添加.
特点:
1> 项目构建
2> 项目依赖
1.2 配置Maven
1> 环境准备:
idea
社区版: 2021.1-2022.1.4
专业版: 没有要求
如果个⼈电脑安装的idea不在这个范围,需要卸载重新安装(下载之前一定要删除干净).Idea卸载参考: https://blog.csdn.net/qq_19072921/article/details/126408402
我们这里jdk使用的是17
2> 配置maven国内源:
因为中央仓库在国外,所以下载起来会⽐较慢,所以咱们选择借助国内⼀些公开的远程仓库来下载资源接下来介绍,如何设置国内源.
seting.xml的链接: https://pan.baidu.com/s/1bLLO1w4bbvZw-sNNdJ6xmg 提取码: ri47
如果你已经有了xml,那么就添加镜像就可以了
打开settings.xml,在mirrors节点上,添加内容如下:
<mirror> <id>aliyunmaven</id><mirrorOf>central</mirrorOf> <name>阿⾥云公共仓库</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
刚刚的配置只会针对当前项目进行生效,我们为了让后续项目也生效,我们就需要重新设置一下新项目的Settings.
注意(一定要点击apply,再点击OK)
3> 安装Maven Help插件
当项⽬⽐较复杂时,我们就会有Jar包冲突的问题,这时候就需要去解决依赖冲突.解决冲突之前,需要先找到冲突,我们可以使⽤Maven Help插件来观察包和包之间的依赖关系(后续会演示).
完成上述三个步骤,你的Maven就差不多配置好了.接下来我会介绍maven怎么用
1.3 maven的核心功能介绍
1> 项目构建
Maven提供了标准的,跨平台(Linux,Windows,MacOS等)的⾃动化项⽬构建⽅式当我们开发了⼀个项⽬之后,代码需要经过编译测试打包发布等流程每次代码的修改都需要经过这些流程如果代码反复调试修改这个流程就需要反复进⾏就显得特别⿇烦⽽Maven给我们提供了⼀套简单的命令来完成项⽬的构建.
比如我们直接可以点击package进行打包操作
此时我们再target里面就能找到我们项目打好的jar包了
一些概念碎碎念:
打包就是把所有的class⽂件,全部放在⼀起,打成jar包或者war包
jar包和war包都是⼀种压缩⽂件
jar包就是把开发⼈员已经写好的⼀些代码进⾏打包.打好的jar包就可以引⼊到其他项⽬中,也可以直接使⽤这些jar包中的类和属性.另外也可以打成可执⾏jar包,这样的包就可以通过java-jar命令来执⾏war包可以理解为是⼀个web项⽬,⾥⾯是项⽬的所有东西,通常⽤于⽹站.
2> 依赖管理
上⾯说到,Maven是⼀个项⽬管理⼯具,通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包获取的jar包,其实就是依赖.pom.xml就是maven的配置⽂件,⽤以描述项⽬的各种信息
依赖配置
依赖: 指当前项⽬运⾏所需要的jar包.
⽐如前⾯学习JDBC时,我们需要⼿动下载mysql-connector-java的包.并且添加到项⽬中.
如果使⽤Maven,我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了
我们去中央仓库里(后续会介绍仓库的知识)面寻找我们要导入的jar包.复制坐标放进去即可
<dependencies>
<!--⾥⾯放置项⽬的依赖坐标, 可为多个 -->
</dependencies>
1> 在pom⽂件 <dependencies> 标签内,添加依赖坐标
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.3.0</version>
</dependency>
2> 点击刷新按钮,引⼊新加⼊的依赖jar包
依赖传递
早期我们没有使⽤maven时,向项⽬中添加依赖的jar包,需要把所有的jar包都复制到项⽬⼯程下.⽐如A依赖B,B依赖C,那么A项⽬引⼊B的同时,也需要引⼊C,如果我们⼿动管理这个依赖,这个过程就会⽐较⿇烦,我们需要知道每个库都依赖哪些库,以及这些依赖之间的版本是如何关联的.
比如: 我们要吃⽕锅,需要有锅,有调料,有⻝材,以及确认什么样的锅,什么样的⻝材.
去医院看病,需要带上以往的病历,检查结果,处⽅等,并且要确认带的资料是正确的,如果⽇期错了,或者患者错了,带少了,就需要回去重新拿.
但使⽤maven的话,就可以避免管理所需依赖的关系。我们只需要在pom⽂件中,定义直接依赖就可以了,由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊.
比如: 吃⽕锅,现在我们可以点⼀个海底捞外卖,直接就把所有⻝材都送过来了,包括什么锅,配什么菜.
去医院看病,借助"互联⽹",实现了信息共享,只需要带上⾝份证,以往的病历和检查结果就都可以看到了.
依赖排除
如果项⽬A不需要JarB,也可以通过排除依赖的⽅式来实现
例子:
<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>
maven还有⼀些功能是依赖调解,可选依赖等
依赖调解: 当项⽬中的依赖存在依赖冲突时,例如存在这样的依赖:
A->B->C->X(1.0)
A->D->X(2.0)
Maven会采⽤最短路径优先的原则去选择依赖,这⾥2的依赖路径更短,所以会选择X(2.0),当然我们也可以选择指定某个依赖的版本
使用Maven Help去处理依赖冲突
当项⽬⽐较复杂时,我们就会有Jar包冲突的问题,这时候就需要去解决依赖冲突.解决冲突之前,需要先找到冲突,我们可以使⽤Maven Help插件来观察包和包之间的依赖关系.
1.4 Maven仓库的介绍
这个代码,我们称之为"坐标",也就是唯⼀的
在Maven中,根据groupId、artifactId、version的配置,来唯⼀识别⼀个jar包,缺⼀不可.
当我们在pom⽂件中配置完依赖之后,点击刷新,Maven会根据坐标的配置,去仓库⾥寻找Jar包,并把他下载下来,添加到项⽬中.这个Jar包下载的地⽅就称为仓库.
相当于我们取快递,我们pom文件里面记录的就是我们的快递在快递站的哪个位置
仓库:⽤于存储资源,管理各种jar包
Maven的仓库分为俩种:
1> 本地仓库: ⾃⼰计算机上的⼀个⽬录(⽤来存储jar包)
当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包,下面就是我们本地仓库的地址
maven下载jar包的顺序:
2> 远程仓库:中央仓库(全球唯一),私有服务器,其他公共的...
中央仓库: maven软件中内置⼀个远程仓库地址,就是中央仓库,服务于整个互联⽹.由Maven团队维护,全球唯⼀.
仓库地址:https://repo1.maven.org/maven2/
可以通过https://mvnrepository.com这个⽹站来查询并下载
我们可以把⾃⼰写好的Jar包上传到中央仓库(具备⼀定的要求),也可以从中央仓库下载Jar包
查找Jar的坐标
1. 访问: https://mvnrepository.com/
2. 进⾏查找,⽐如mysql
这里注意我们下载的版本(所有要下载的通用)
1.选择没有没有漏洞的
2.选择次新版本的
3.选择使用人数多的
私服:⼀般由公司团队搭建的私有仓库.
私服属于某个公司,或者某个部⻔,往往需要⼀定权限.有了私服之后,Maven依赖下载的顺序⼜发⽣了变化
maven下载jar包的顺序
2. SpringBoot的配置和创建第一个项目
前置概念碎碎念
在配置之前我们先了解一下Spring和Spring Boot的关系
Spring 是一个开源的 Java 应用框架,旨在简化企业级应用开发。它提供了一个全面的编程和配置模型,用于构建基于 Java 的应用程序。但是Spring Framework(Spring 的核心)存在配置多,⼊⻔难的问题,Spring也意识到了这个问题,为了简化开发者的使⽤,从⽽创造性的推出了Spring Boot.
比如:Spring类似火车.早期我们买票是需要去火车站线下买的的.现在就直接线上去12306(相当于Spring Boot)买就行(省了很多时间,更加方便,效率更高).SpringBoot的诞⽣是为了简化Spring程序开发的。
我们再从封装的角度来理解:有共同的东西->封装起来
Spring Boot里面有很多东西已经封装起来了,就是把我们需要到处找,然后挨个下载的东西,直接给我封装起来了,下了Spring Boot就可以直接用.
像12306,我们不仅可以买票,还可以定酒店,出租车,买保险,定外卖,只要用户用12306,在里面下单了,这个就可以发给相应的服务器显示出订单.
2.1 SpringBoot的配置
配置
注意: 这里只介绍idea专业版怎么配置
点击New Projiect,按照下面的图进行配置
这里注意Spring Boot的版本号:
3.X ->JDK17 2.X -> JDK8
搞好后,页面会弹出一个小框,记得点一下Load Maven Project(可能会加载很久)
这样就创建好了
认识各个文件
配置文件和创建时候的对应关系
常见问题解决方式:
1> 没有Maven选项
项目名称右击,找到Add Framework Suport,然后添加Maven即可
2> 插件下载失败
1.确认自己是否使用国内源
2.切换网络
3.重新刷新Maven
3> build的插件下不下来(去中央仓库下载,记得和自己的SpringBoot版本号一致)
启动程序
当8080端口被占用我们该如何解决:
1> 关闭8080端口号
先查看谁占用了,再根据它的进程号去后台杀死它
去任务管理器找到这个进程号杀死进程
2> 修改端口号
2.2 第一个项目的创建
启动
首先我先启动启动类,然后写自己的项目,最后在浏览器输入
http://127.0.0.1:8080/(@RequestMapping里面写的东西),再点击回车即可
原理
小概念碎碎念:
我们知道HTTP协议就是HTTP客⼾端和HTTP服务器之间的交互数据的格式. Web服务器就是对HTTP协议进⾏封装,程序员不需要直接对协议进⾏操作(⾃⼰写代码去解析http协议规则),让Web开发更加便捷,所以Web服务器也被称为WWW服务器,HTTP服务器,主要功能是提供⽹上信息浏览服务.
常⻅的Web服务器有:Apache,Nginx,IIS,Tomcat,Jboss等
SpringBoot内置了Tomcat服务器,⽆需配置即可直接运⾏
整个页面显示的流程:可以看出我们这个是典型的B/S
2.3 常见的错误排查手段
1. 主机拒绝房屋内链接请求
解决方案:
1> 服务器未启动(也就是启动类没有启动)大多数情况
2> 如果IP是外网,端口号没有开放
进入2之前我们先认识状态码
200: 成功
3XX:重定向
4XX:客户端错误
5XX:内部错误
2. http状态码,资源不存在
解决方案:
1> 检查url路径(注意大小写)
2> 检查代码的注解
3.服务器内部错误
解决方案:
1> 去看日志(分段看)从下往上看(放在文本编辑器里面看)
相关文章:

SpringBoot快速使用
一些名词的碎碎念: 1> 俩种网络应用设计模式 C/S 客户端/服务器 B/S 浏览器/服务器 俩者对比: 2> 集群和分布式的概念 集群: 分布式: 例子: 一个公司有一个人身兼多职 集群: 招聘N个和上面这个人一样身兼多职 分布式: 招聘N个人,分担上面这个人的工作,进行工作的拆分. 工…...

【C语言实现:用队列模拟栈与用栈模拟队列(LeetCode 225 232)】
LeetCode刷题记录 🌐 我的博客主页:iiiiiankor🎯 如果你觉得我的内容对你有帮助,不妨点个赞👍、留个评论✍,或者收藏⭐,让我们一起进步!📝 专栏系列:LeetCode…...

远程控制软件对比与使用推荐
远程控制软件对比与使用推荐 远程控制软件在现代工作环境中扮演着重要角色,无论是远程办公、技术支持、还是家庭成员之间的协助。以下是对几种常见远程控制软件的详细对比和推荐使用场景。 1. TeamViewer 特点 跨平台:支持Windows、macOS、Linux、iO…...

vue canvas 绘制选定区域 矩形框
客户那边文档相当的多,目前需要协助其将文档转为数据写入数据库,并与其他系统进行数据共享及建设,所以不得不搞一个识别的功能,用户上传PDF文档后,对于关键信息点进行识别入库! 以下为核心代码,…...

【SpringCloud】OpenFeign配置时间Decode
文章目录 1.自定义反序列化器2.配置类与自定义 ObjectMapper客户端 需求:OpenFeign配置自定义decode,解析http请求返回的时间字符串 1.自定义反序列化器 Date 自定义反序列化器 import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.j…...

Xerces-C,一个成熟的 C++ XML 解析库!
嗨,大家好!我是一行。今天咱们来探索 Xerces-C,它可是 C里超棒的 XML 解析库哦!能帮咱轻松处理 XML 数据,在很多数据交互、配置文件读取场景都超实用,快来一起学习使用它的妙招吧。 一、Xerces-C 是什么&am…...

6.2 MapReduce工作原理
MapReduce工作原理涉及将大数据集分割成小块并行处理。Map任务读取数据块并输出中间键值对,而Reduce任务则处理这些排序后的数据以生成最终结果。MapTask工作包括读取数据、应用Map函数、收集输出、内存溢出时写入磁盘以及可选的Combiner局部聚合。ReduceTask工作则…...

一次旧业务系统迁移收缩的经历
单位的一个业务系统,在几年前已经更换了。但旧的系统里面还有很多没有转移过来的数据,虽然普通用户不再需要用旧的系统,但相应部门的管理人员还需要在旧系统查询数据资料,这应该是旧系统向新系统迁移时,数据不彻底&…...

MVC配置文件及位置
配置文件位置 默认位置 WEB-INF目录下,文件名:<servlet-name>-servlet.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.…...

如何解决samba服务器共享文件夹不能粘贴文件
sudo vim /etc/samba/smb.conf在samba的配置文件中增加一个选项 writable yes重启Samba服务以使更改生效: sudo service smbd restart...

【中工开发者】鸿蒙商城app
这学期我学习了鸿蒙,想用鸿蒙做一个鸿蒙商城app,来展示一下。 项目环境搭建: 1.开发环境:DevEco Studio2.开发语言:ArkTS3.运行环境:Harmony NEXT base1 软件要求: DevEco Studio 5.0.0 Rel…...

(九)机器学习 - 多项式回归
多项式回归(Polynomial Regression)是一种回归分析方法,它将自变量 xx 和因变量 yy 之间的关系建模为 nn 次多项式。多项式回归的目的是找到一个 nn 次多项式函数,使得这个函数能够最好地拟合给定的数据点。 多项式回归的数学表达…...

Qt编写区位码gb2312、机内码、国标码————附带详细介绍和编码实现
文章目录 0 背景1 了解编码1.1 ASCII码1.2 机内码、国标码、区位码1.2.1 区位码1.2.2 国标码(GB 2312-80)1.2.3 汉字机内码(GB 2312) 1.3 GBK和GB2312的区别2 编码实现2.1 QString数据转QByteArray类型2.1.1 使用QTextCodec2.1.2 …...

linux网络编程 | c | epoll实现IO多路转接服务器
epoll实现IO多路转接服务器 可通过以下视频学习 06-opell函数实现的多路IO转接_哔哩哔哩_bilibili 通过响应式–多路IO转接实现 文章目录 epoll实现IO多路转接服务器1.思路&功能核心思路 2.代码实现multi_epoll_sever.c运行图 1.思路&功能 **功能:**客…...

Source Insight的使用经验汇总
01-Add All"和“Add Tree”有何区别? 在 Source Insight 中,“Add All”和“Add Tree”是两种向项目(Project)中添加文件的操作选项,它们的区别在于处理文件和目录的方式不同: 1. Add All 范围&am…...

VSCode 报错:rust-analyzer requires glibc >= 2.28 in latest build
报错信息 /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.953/server/rust-analyzer: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.29 not found (required by /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.9…...

Android Link to Death 使用
Java侧: 【android学习】使用linkToDeath对AIDL双向死亡监听_unlinktodeath-CSDN博客 Native侧: Service端 using namespace android; class MyService :public IBinder::DeathRecipient{void MyService::binderDied(const wp<IBinder>& wh…...

【C++游记】string的使用和模拟实现
枫の个人主页 你不能改变过去,但你可以改变未来 算法/C/数据结构/C Hello,这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕,我们继续来学习C的内容呀。C是接近底层有比较经典的语言,因此学习起来注定枯燥无味…...

DockerUI info存在未授权访问漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

SQL,查询每天最接近指定时间的记录
Oracle 数据库的某表有一列是日期时间类型,每天对应多条数据: td1.1.2024 08:08:0811.1.2024 10:10:1021.1.2024 15:15:1531.1.2024 20:20:2042.1.2024 09:09:0952.1.2024 12:12:1262.1.2024 16:16:16712.12.2024 16:16:168 现在要从每天找出两条记录&…...

ElasticSearch如何做性能优化?
大家好,我是锋哥。今天分享关于【ElasticSearch如何做性能优化?】面试题。希望对大家有帮助; ElasticSearch如何做性能优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中,性能优化是…...

【Linux】虚拟空间布局模型地址回填数据段合并(万字详解)
Ⅰ、虚拟空间布局模型 理论模型 包括上节的动态库与静态库,加上本节后面两个内容其实都是对gcc的扩展与补充知识,也是需要了解和掌握的知识。在开讲之前,我们先来说一下在32位x86的Linux系统中,虚拟地址空间布局模型:…...

const和修饰指针的几种用法
昨天闲着没事去面试了一个C岗位,问了很多基础的东西都没答上来。主要原因是这些知识在硬件资源丰富的pc端用的不多,二来确实很久没温习之前的C相关的知识了。在面试官问了几次类似的问题没有答好的情况下(还喜欢问你确不确定)&…...

mybatis事务的自动提交与手动提交
MyBatis支持自动提交和手动提交两种事务管理方式。 自动提交事务 MyBatis默认使用自动提交模式,即每个SQL操作都会自动提交到数据库中。这意味着在执行完一条SQL语句后,MyBatis会自动调用commit()方法将更改持久化到数据库。 手动提交事务 可以通过Sq…...

网络安全协议之比较(SSH、PKI、SET、SSL)
一、SSH介绍 什么是SSH? 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据, 别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的…...

Vue的生命周期方法
Vue 生命周期方法详解 beforeCreate 执行时机:在实例初始化之后,数据观测(data observer)和事件配置(event/watcher setup)之前被调用。内部状态:此时,组件的选项对象(例…...

ISP和IQ调试(一)
系列文章目录 文章目录 系列文章目录前言一、ISP(image signal process)二、ISP位置三、IQ总结 前言 一、ISP(image signal process) image signal process 图像处理技术 image signal processor 图像信号处理器 设备 什么是图像信号? 代表…...

c# TaskScheduler
这里记录下 TaskScheduler 的简单用法。 使用场景: 使用 Task 的时候,大家知道用 TaskFactory.StartNew 可以用来创建一个 Task 。这里如果创建了 3 个,那么这3个 Task 就各自放飞直接运行了。 class Program {private static TaskFactory…...

可视化数据
数据科学家会直观呈现数据,以更好地理解数据。 他们可以扫描原始数据、检查摘要度量值(如平均值)或绘制数据图表。 图表是一种可视化数据的强有力方式,数据科学家经常使用图表快速了解适度复杂的模式。 直观地表示数据 绘制图表…...

【Redis】Redis缓存击穿
1. 概述 缓存击穿:缓存击穿问题也叫热点key问题,一个高并发的key或重建缓存耗时长(复杂)的key失效了,此时大量的请求给数据库造成巨大的压力。如下图,线程1还在构建缓存时,线程2,3&…...