Java EE基础知识点

news2024/11/15 21:23:42

  前言👀~

上一章我们介绍了性能测试工具LoadRunner,今天开启新的篇章Java EE进阶相关的内容

框架

Maven

项目构建

依赖管理

依赖传递

依赖排除

Maven概念

Maven仓库

Maven 设置国内源

创建Spring Boot项目

Web服务器


如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,讲解的内容我会搭配我的理解用我自己的话去解释如果有什么问题的话,欢迎各位评论纠正 🤞🤞🤞

47497722484f4d519a7e014f8100ec05.png

个人主页:N_0050-CSDN博客

相关专栏:java SE_N_0050的博客-CSDN博客  java数据结构_N_0050的博客-CSDN博客  java EE_N_0050的博客-CSDN博客


框架

什么是框架?

框架是一个实现了部分功能的半成品,就类似给你一个毛坯房,你自己装修,装修成你想要的样子。对于程序员来说就是把之前需要写的一些复杂的功能写好并且封装起来了,你只需要调用它提供的接口即可实现一些之前需要花费很⼤功⼒才能实现的功能

Java都有哪些框架?

Spring(Spring是基于servlet的框架)、SpringBoot、Spring MVC、MyBatis等


Maven

什么是Maven?

Maven是⼀个项⽬管理⼯具,通过pom.xml(Maven的配置文件)⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包。可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件

项目构建

当我们开发了⼀个项⽬之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程,就很麻烦。所以Maven提供了⼀套简单的命令来完成项⽬的构建,一般很少用Maven进行打包

什么是打包?

打包就是把所有的class⽂件, 全部放在⼀起, 打成jar包或者war包,jar包和war包两者都是⼀种压缩⽂件

jar包:就是把开发⼈员已经写好的⼀些代码进⾏打包,打好的jar包就可以引⼊到其他项⽬中,也可以直接使⽤这些jar包中的类和属性,另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执⾏

war包:可以理解为是⼀个web项⽬,⾥⾯是项⽬的所有东西,通常⽤于⽹站


依赖管理

之前使用JDBC的时候,都需要手动下载mysql-connector-java的,然后添加到项⽬中。现在我们通过导入依赖,也就是上面提到的通过pom.xml⽂件的配置获取jar包,⽽不⽤手动去添加jar包,依赖指当前项⽬运⾏所需要的jar包.

注意:添加完依赖记得点刷新按钮,这样才会生效!!!


依赖传递

大白话就是你导入的这个依赖,还依赖于其他jar包,它都会给你一起导入,就好比导入一个爹,老婆和孩子也给你跟着一起导入


依赖排除

就是向上面这种依赖关系多了后会很复杂,对于一些重复的依赖我们需要进行排除。就比如一个jar包A依赖于一个jar包C,另外一个项目C也依赖于一个jar包C,两个jar包C的版本不一样而已,所以排除一个这样的依赖对项目运行不会有什么影响。依赖排除,大多使用场景是为了解决冲突

我们可以使用Maven Help插件来观察包和包之间的依赖关系


Maven概念

在Maven中,根据 groupId、artifactId、version 的配置,来唯⼀识别⼀个 jar 包,缺⼀不可

1.坐标:导入依赖的代码,根据代码的描述我们可以找到它的位置,称为"坐标"

2.仓库:这个Jar包下载的地⽅就称为仓库。当我们导入依赖后,点击刷新Maven会根据坐标,去仓库⾥寻找Jar包,然后下载下来添加到项目中。Maven仓库的本质就是⼀个⽬录(⽂件夹),这个⽬录被⽤来存储开发中所有依赖(jar包, 插件等).

Maven仓库

中央仓库:maven中内置一个远程仓库地址(https://mvnrepository.com/),服务器在国外。我们可以从中央仓库下载Jar包

真正的中央仓库地址:https://repo1.maven.org/maven2/,如果上面的地址中找不到对应的jar包去这个仓库中找,如果也没有那就是没有

两者的区别:就好比菜鸟驿站,一个商品到了仓库只是还没登记入库的区别,我们查第一个地址是查不到,但是第二个地址是可以查到

本地仓库:就是当我们的项目导入对应依赖jar后,会先从我们的本地仓库中查找本地仓库中是否有对应的jar包,如果有直接用,没有的话去中央仓库中下载对应的jar包到本地仓库


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

私服:私有服务器,对于不想公开的一些工具类,使用私服给限定的人使用,所以通常具有一定的权限

流程:有了私服之后,Maven依赖下载的顺序⼜发⽣了变化,首先还是和之前一样当我们的项目导入对应依赖jar后,会先从我们的本地仓库中查找本地仓库中是否有对应的jar包,如果有直接用,如果没有则先去私服中查找是否有对应的jar包的,有的话直接用,没有的话去中央仓库中下载对应的jar包返回给私服再返回给本地仓库。注意如果使用私服的人从中央仓库中下载对应的jar包后,后续有权限访问私服的其他人都可以从私服中直接下载

Maven 设置国内源

Maven 仓库默认在国外https://mvnrepository.com/, 国内使⽤时会⽐较慢,我们可以更换为阿⾥云的仓库,先访问阿里云的仓库,如果没有再去访问Maven 仓库,进入企业后,配置公司私服就可以了,不用配置国内源

1.首先找到你maven的安装路径

2.打开conf文件夹,再找到settings.xml,使用记事本打开,只要能编辑就行,修改以下这两个地方即可

配置国内源,有两个地方需要配置:

1.当前项目
 
2.新项目,这样下次创建项目后就不需要重新再配置了


创建Spring Boot项目

Spring就是一个框架,为了简化开发的一个框架,Spring Boot就是基于Spring的一个框架,为了简化Spring项目而诞生的,可以说是Spring 脚⼿架,就类似盖房⼦的那个架⼦就是脚⼿架

创建spring项目的时候发现这两个属性,就是和maven中依赖的其中两个属性一样,所以我们也可以把自己的jar包上传到中央仓库

目录介绍:

src/main/java:放java源代码

src/main/resources:放静态资源或配置⽂件相关代码其中application.properties是SpringBoot项目的配置文件,非常重要!!!

/static:静态资源⽂件,例如html、css等,不需要服务器数据进⾏绑定的⻚⾯

src/test/java: 放测试代码,这里面放的是开发人员的测试代码与测试人员无关

target: 编译后的⽂件路径

pom.xml: maven 配置⽂件


观察启动日志:

可以发现Spring项目内置了tomcat服务器,直接用就完事了不用配置,Tocmat默认端⼝号是8080,所以我们程序访问时的端⼝号也是8080

Web服务器

浏览器和服务器进行数据交互,使用的是HTTP协议,HTTP协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式


 
Web 服务器就是对HTTP协议进⾏封装, 程序员不需要直接对协议进⾏操作

常⻅的Web服务器有:Apache,Nginx, IIS, Tomcat, Jboss等

请求响应流程分析:

简单说一下在浏览器输入一个URL,然后通过IP地址找到主机的位置,接着就是根据端口号找到对应的进程,然后获取资源或者提交资源等,接着对端的服务器对请求进行处理后返回数据给客户端,这里我解释的不全面这还会涉及到三次握手建立连接以及四次挥手断开连接

以上便是本章内容都是一些很基础的知识点,EE阶段主要是以练习为主多敲代码,并且现在敲代码不像之前一样出现报错只需要看看代码就能解决的,现在不一样有很多因素干扰,例如环境、配置等等因素,下一章也会讲解如何去定位以及应对程序报错的情况💕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2033965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter 3.24 对普通开发者有哪些影响?

哈喽,我是老刘 Flutter 3.24刚刚发布了。突然觉得时间过得好快。六年前刚开始使用Flutter 1.0的场景还在眼前。 随着Flutter团队老成员的回归和新成员的加入。 前段时间Flutter团队裁员的影响似乎也逐步消退了。 新版本发布的功能逐步回到了该有的状态。 这里盘点…

解决域名加别名后再代理或者映射到fastadmin项目

如果遇到微应用不想再添加或者不方便添加单独的二级域名时,就需要用到代理或者映射来进入到我们的微应用项目中。 可以修改route.php路由文件的下面这个参数 __alias__ > [别名 > 模块/控制器] 如图 然后再修改config.php文件里面的view_replace_str参数…

C++入门基础知识11

C 关键字 下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。 !!!完整关键字介绍 (下一篇博文中将详细罗列介绍)

内网穿透:打破网络边界的神奇钥匙

在数字化时代,我们每天都在使用各种网络设备,但你是否曾想过,家里的智能摄像头、私人服务器或是游戏主机,如何能够在远离家的地方也能轻松访问? 这就需要涉及到内网穿透技术了。今天,我们就用简单的例子来揭…

coze 工作流使用

什么是工作流 工作流就是将一系列的逻辑节点串起来的流程,例如我们做一个爬虫,第一步先爬取网页内容,第二步数据清洗,得到我们想要的数据,第三步存到数据库。这里每步就是一个逻辑节点,她们之间有先后或是…

如何用不到一分钟的时间将Excel电子表格转换为应用程序

我们大多数人对电子表格又爱又恨。当企业需要分析数据、为决策过程提供信息并可视化信息时,Excel和Google Sheets是首选。这些文档非常容易创建,它们帮助我们以直接的方式构建相关的想法和适用的数据。除此之外,事情可能会变得一团糟。 对于…

服务注册中心--Eureka

一.Eureka概述 Eureka是一个基于REST的服务,主要用于AWS(Amazon Web Services 亚马逊云计算服务)云中的定位服务,以实现中间层服务器的负载平衡和故障转移在 Spring Cloud 微服务架构中通常用作注册中心, 我们称这个服务为 Eureka Server,还…

springboot学生作业管理系统---附源码14916

摘 要 在信息化社会中,人们需要针对性的信息获取途径。然而,由于不同角度和偏好的存在,人们经常只能获得特定类型的信息,这也是技术攻克难题之一。为了解决学生作业管理系统等问题,本研究通过分析和研究,设…

汽车免拆诊断案例 | 2011 款进口现代新胜达车智能钥匙系统有时失效

故障现象  一辆2011款进口现代新胜达车,搭载G4KE发动机,累计行驶里程约为26.3万km。车主进厂反映,有时进入车内按下起动按钮,发动机无法起动,且组合仪表黑屏。 故障诊断  接车后试车,车辆使用一切正常。…

Windows创建定时任务触发bat脚本 实现oracle数据库备份

Windows中的计划任务程序来触发oracle数据库备份脚本 任务计划程序 创建基本任务 填写名称、描述,下一步 触发任务:填写定时周期 操作:启动程序,选择要执行的bat脚本 点击完成,就能在任务列表中查看到我们刚才创…

【Linux】MySQL安装教程

Linux中MySQL安装教程 Step1:卸载系统自带的mysqlStep2:下载mysql8安装包Step3:上传mysql压缩包到 /opt 然后解压Step4:解压后按照如下顺序安装Step5:对mysql进行初始化Step6:修改mysql安装目录的所有用户和…

算法的学习笔记—在 O(1) 时间内删除链表节点

😀前言 在链表操作中,删除节点是一个常见的操作。然而,如何在最短的时间内完成删除节点的操作是一个值得探讨的问题。通常情况下,删除链表节点需要遍历链表来找到目标节点及其前驱节点,时间复杂度为 O(N)。但是&#x…

【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧:get_json_object

【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧:get_json_object 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 …

stm32入门学习13-时钟RTC

(一)时钟RTC stm32内部集成了一个秒计数器RTC,用于显示我们日常的时间,如日期年月日,时分秒等,RTC的主要原理就是进行每秒自增,如果我们知道开始记秒的开始时间,就可以计算现在的日…

Redis操作--RedisTemplate(二)StringRedisTemplate

一、介绍 1、简介 由于存储在 Redis 中的 key 和 value 通常是很常见的 String 类型,Redis模块提供了 RedisConnection 和 RedisTemplate 的扩展,分是 StringRedisConnection 和 StringRedisTemplate,作为字符串操作的解决方案。 通过源码…

JVM二:JVM类加载机制

目录 前言 1.什么是类加载? 2.类加载整体流程 3.一个类什么时候被加载? 4.双亲委派模型 4.1 JVM默认提供了三个类加载器 4.1.1 BootstrapClassLoader 4.1.2 ExtensionClassLoader 4.1.3 ApplicationClassLoader 4.2 破坏双亲委派模型 前言 在上一篇文章中&#xf…

江科大/江协科技 STM32学习笔记P21

文章目录 ADC模数转换器ADC简介逐次逼近型ADCSTM32的ADCADC基本结构输入通道转换模式单次转换,非扫描模式连续转换,非扫描模式单次转换,扫描模式连续转换,扫描模式 触发控制数据对齐转换时间校准硬件电路电位器产生可调电压的电路…

Python图像背景去除

目录 🎁库的导入 🎀库的安装 🎁rembg库去除背景 🎁效果 🎁文末彩蛋 今天来介绍一个特别有趣的python库,rembg库,全称是“Remove Background”的缩写,意为“去除背景”&#xff…

边缘计算与物联网实训室解决方案

一、引言 随着物联网(IoT)技术的迅猛发展,数据量呈爆炸性增长,对数据处理和实时响应能力提出了更高要求。传统的云计算模式由于数据传输延迟和带宽占用等问题,难以满足物联网场景中对低延迟和高可靠性的需求。边缘计算…

QT判断操作系统类型和CPU架构

一、判断操作系统类型 1.在.pro文件中判断 macx { # mac only } unix:!macx{ # linux only } win32 { # windows only }2.在代码中判断 可以包含QGlobal头文件&#xff0c;判断预定义宏 #include <QtGlobal> ... #ifdef Q_OS_MAC // mac #endif#ifdef Q_OS_LINUX // …