idea_maven详解

秒懂Maven

  • maven简介
  • maven安装和配置
  • maven本地配置
  • maven工程的GAVP
  • 创建maven工程
    • 项目结构说明
    • 项目构建说明
  • Maven依赖管理
    • 核心信息配置
    • 依赖管理配置
    • 依赖信息查询
    • 依赖范围设置
    • 依赖属性配置
    • 依赖下载失败错误解决
    • Build构建配置
    • 依赖传递
    • 依赖冲突
  • maven工程继承
    • 继承作用
    • 应用场景
    • 继承语法
    • 父工程依赖统一管理
  • maven工程聚合
    • 聚合作用
    • 聚合语法
  • maven私服
    • 私服的优势
    • Nexus下载安装
    • 初始设置
    • 仓库介绍
    • 配置Nexus下载jar包
    • 部署jar包到Nexus
    • 引用部署后jar包

maven简介

Maven 是一款为 Java 项目管理构建、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量

  • 依赖管理:
    Maven 可以管理项目的依赖,包括自动下载所需依赖库、自动下载依赖需要的依赖并且保证版本没有冲突、依赖版本管理等。通过 Maven,我们可以方便地维护项目所依赖的外部库,避免版本冲突和转换错误等,而我们仅仅需要编写配置即可

  • 构建管理:
    项目构建是指将源代码、配置文件、资源文件等转化为能够运行或部署的应用程序或库的过程,Maven 可以管理项目的编译、测试、打包、部署等构建过程

maven安装和配置

工具版本
Maven3.8.4
JDK8
  1. 下载地址
    Apache Maven 官网地址
    在这里插入图片描述

  2. 安装java环境
    maven需要本机安装java环境、必需包含JAVA_HOME环境变量,如何安装就不多说了

  3. 下载之后解压即可

    bin: 含有Maven的运行脚本
    boot:含有plexus-classworlds类加载器框架
    conf:含有Maven的核心配置文件
    lib: 含有Maven运行时所需要的Java类库
    LICENSE、NOTICE、README.txt:针对Maven版本,第三方软件等简要介绍

  4. 配置MAVEN_HOME、Path
    在这里插入图片描述
    在这里插入图片描述

    查看安装是否成功
    在这里插入图片描述

  5. 配置conf/settings.xml文件

    • 配置本地仓库地址
      <!-- localRepository
      | The path to the local repository maven will use to store artifacts.
      |
      | Default: ${user.home}/.m2/repository
      <localRepository>/path/to/local/repo</localRepository>
      -->
      <!-- 配置本地maven仓库 50行附近-->
      <localRepository>C:\maven\maven-respository</localRepository>
      
    • 配置国内阿里镜像
      <!--在mirrors节点(标签)下添加仓库镜像 160行附近-->
      <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>
      
    • 配置jdk版本项目构建
      <!--在profiles节点(标签)下添加jdk编译版本 268行附近-->
      <profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties>
      </profile>
      

maven本地配置

打开idea,点击路径如下:
File -> Settings -> Bild, Execution, Deployment -> Build Tool -> Maven
在这里插入图片描述
修改如下:

在这里插入图片描述

maven工程的GAVP

  • GroupID:com.{公司 }.业务线.[子业务线],最多 4 级
  • ArtifactID:产品线名-模块名
  • Version:版本号格式:主版本号.次版本号.修订号
    • 主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能
    • 次版本号:当做了向下兼容的功能性新增(新增类、接口等)
    • 修订号:修复 bug
  • Packaging:指示将项目打包成什么类型的文件,idea根据packaging值,识别maven项目类型

创建maven工程

File -> New -> Module
在这里插入图片描述
创建之后,maven会自动下载插件,创建好项目结构,生成pom文件

在这里插入图片描述

项目结构说明

|-- pom.xml                               # Maven 项目管理文件 
|-- src|-- main                              # 项目主要代码|   |-- java                          # Java 源代码目录|   |   `-- com/example/myapp         # 开发者代码主目录|   |       |-- controller            # 存放 Controller 层代码的目录|   |       |-- service               # 存放 Service 层代码的目录|   |       |-- dao                   # 存放 DAO 层代码的目录|   |       `-- model                 # 存放数据模型的目录|   |-- resources                     # 资源目录,存放配置文件、静态资源等|   |   |-- log4j.properties          # 日志配置文件|   |   |-- spring-mybatis.xml        # Spring Mybatis 配置文件|   |   `-- static                    # 存放静态资源的目录|   |       |-- css                   # 存放 CSS 文件的目录|   |       |-- js                    # 存放 JavaScript 文件的目录|   |       `-- images                # 存放图片资源的目录|   `-- webapp                        # 存放 WEB 相关配置和资源|       |-- WEB-INF                   # 存放 WEB 应用配置文件|       |   |-- web.xml               # Web 应用的部署描述文件|       |   `-- classes               # 存放编译后的 class 文件|       `-- index.html                # Web 应用入口页面`-- test                              # 项目测试代码|-- java                          # 单元测试目录`-- resources                     # 测试资源目录
  • pom.xml:Maven 项目管理文件,用于描述项目的依赖和构建配置等信息
  • src/main/java:存放项目的 Java 源代码。
  • src/main/resources:存放项目的资源文件,如配置文件、静态资源等。
  • src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
  • src/main/webapp/index.jsp:Web 应用的入口页面。
  • src/test/java:存放项目的测试代码。
  • src/test/resources:存放测试相关的资源文件,如测试配置文件等。

项目构建说明

命令描述
compile编译项目,生成target文件
package打包项目,生成jar或war文件
clean清理编译或打包后的项目结构
install打包后上传到maven本地仓库
deploy只打包,上传到maven私服仓库
test执行测试源码

Maven依赖管理

我们通过定义 POM 文件,Maven 能够自动解析项目的依赖关系,并通过 Maven 仓库自动下载和管理依赖,从而避免了手动下载和管理依赖的繁琐工作和可能引发的版本冲突问题

核心信息配置

<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成-->
<groupId>com.companyname.project-group</groupId><!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>project</artifactId><!-- 版本号 -->
<version>1.0.0</version><!--打包方式默认:jarjar指的是普通的java项目打包方式war指的是web项目打包方式pom指的是这个项目作为父工程,被其他工程聚合或者继承
-->
<packaging>jar/pom/war</packaging>

依赖管理配置

<!-- 通过编写依赖jar包的gav必要属性,引入第三方依赖!scope属性是可选的,可以指定依赖生效范围!-->
<dependencies><!-- 引入具体的依赖包 --><dependency><!-- g --><groupId>log4j</groupId><!-- a --><artifactId>log4j</artifactId><!-- v --><version>1.2.17</version><!-- 依赖范围 --><scope>runtime</scope></dependency></dependencies>

依赖信息查询

  • maven仓库信息官网 https://mvnrepository.com/
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

依赖范围设置

依赖范围描述
compile编译依赖范围。scope 元素的缺省值。依赖范围编译、测试、运行过程都是必须的
test测试依赖范围。依赖范围只对测试有效
provided已提供依赖范围。依赖范围只对编译有效
runtime运行依赖范围。依赖范围的只对测试、运行有效
system系统依赖范围。其效果与 provided 的依赖范围一致。用于添加非 Maven 仓库的本地依赖,通过依赖元素 dependency 中的 systemPath 元素指定本地依赖的路径。鉴于使用其会导致项目的可移植性降低,一般不推荐使用
import导入依赖范围。该依赖范围只能与 dependencyManagement 元素配合使用,其功能是将目标 pom.xml 文件中 dependencyManagement 的配置导入合并到当前 pom.xml 的 dependencyManagement 中。

依赖属性配置

<properties><!-- 通过编写properties添加自定义属性--><!-- 设置JDK版本 --><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><!-- 设置编码格式 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!--自定义属性,在添加依赖时可以通过${package.version}来调用 --><package.version>4.12</package.version></properties>

依赖下载失败错误解决

下载错误原因

  1. 下载依赖时出现网络故障或仓库服务器宕机等原因,导致无法连接至 Maven 仓库,从而无法下载依赖。
  2. 依赖项的版本号或配置文件中的版本号错误,或者依赖项没有正确定义,导致 Maven 下载的依赖项与实际需要的不一致,从而引发错误。
  3. 本地 Maven 仓库或缓存被污染或损坏,导致 Maven 无法正确地使用现有的依赖项。

解决方案

  1. 检查网络连接和 Maven 仓库服务器状态。
  2. 确保依赖项的版本号与项目对应的版本号匹配,并检查 POM 文件中的依赖项是否正确。
  3. 清除本地 Maven 仓库缓存(lastUpdated 文件),因为只要存在lastupdated缓存文件,刷新也不会重新下载。在本地仓库中,根据依赖的gav属性依次向下查找文件夹,最终删除内部的文件,刷新重新下载即可

Build构建配置

构建不需要额外配置,都有对应的缺省配置。但我们也可以在pom.xml使用build标签来定制一些配置,修改默认值

指定打包命名

<!-- 默认的打包名称:artifactid+verson.打包方式 -->
<build><finalName>定义打包名称</finalName>
</build>  

指定打包文件

举例:
java文件夹中添加xml文件,默认不会被打包,如何解决
<build><!--设置要打包的资源位置--><resources><resource><!--设置资源所在目录--><directory>src/main/java</directory><includes><!--设置包含的资源类型--><include>**/*.xml</include></includes></resource></resources>
</build>

配置依赖插件
dependencies标签下引入开发需要的jar包!我们可以在build/plugins/plugin标签引入插件

<build><plugins><!-- java编译插件,配jdk的编译版本 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><!-- tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8090</port><path>/</path><uriEncoding>UTF-8</uriEncoding><server>tomcat7</server></configuration></plugin></plugins>
</build>

依赖传递

假如有Maven项目A,项目B依赖A,项目C依赖B。那么我们可以说 C依赖A。也就是说,依赖的关系为:C—>B—>A, 那么我们执行项目C时,会自动把B、A都下载导入到C项目的jar包文件夹中,这就是依赖的传递性

作用

  • 简化依赖导入过程
  • 确保依赖版本正确

依赖传递终止

  • 非compile范围进行依赖传递
  • 使用optional配置终止传递
  • 依赖冲突(传递的依赖已经存在)
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.15</version><!-- 终止传递 --><optional>true</optional>
</dependency>

依赖冲突

当直接引用或者间接引用出现了相同的jar包时,一个项目就会出现重复的jar包,这就算作冲突

解决依赖冲突方式:

  1. 自动选择原则
    • 短路优先原则(第一原则)
      • 谁的依赖路径最短,优先选择谁
    • 依赖路径长度相同情况下,则“先声明优先”(第二原则)
      • 在<depencies></depencies>中,先声明的,路径相同,会优先选择
  2. 手动排除
    <dependency><groupId>com.atguigu.maven</groupId><artifactId>pro01-maven-java</artifactId><version>1.0-SNAPSHOT</version><scope>compile</scope><!-- 使用excludes标签配置依赖的排除  --><exclusions><!-- 在exclude标签中配置一个具体的排除 --><exclusion><!-- 指定要排除的依赖的坐标(不需要写version) --><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency>
    

maven工程继承

Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作

继承作用

  • 在父工程中统一管理项目中的依赖信息

应用场景

  • 对一个比较大型的项目进行了模块拆分。
  • 一个 project 下面,创建了很多个 module。
  • 每一个 module 都需要配置自己的依赖信息。

继承语法

  • 父工程
          <!-- 父工程的坐标 --><groupId>com.xty.maven</groupId><artifactId>maven-parent</artifactId><version>1.0-SNAPSHOT</version><!-- 当前工程作为父工程,它要去管理子工程,所以打包方式必须是 pom --><packaging>pom</packaging>
    
  • 子工程
         <!-- 使用parent标签指定当前工程的父工程 --><parent><!-- 父工程的坐标 --><groupId>com.xty.maven</groupId><artifactId>maven-parent</artifactId><version>1.0-SNAPSHOT</version></parent><!-- 子工程的坐标 --><!-- 子工程坐标中的groupId和version与父工程一致,可以省略 --><artifactId>maven-son</artifactId>

继承

父工程依赖统一管理

  • 父工程声明版本
        <!-- 使用dependencyManagement标签配置对依赖的管理 --><!-- 被管理的依赖并没有真正被引入到工程 --><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>6.0.10</version></dependency></dependencies></dependencyManagement>
  • 子工程引用版本
        <!-- 子工程引用父工程中的依赖信息时,可以把版本号去掉。  --><!-- 把版本号去掉就表示子工程中这个依赖的版本由父工程决定。 --><!-- 具体来说是由父工程的dependencyManagement来决定。 --><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></dependency></dependencies>

maven工程聚合

Maven 聚合是指将多个项目组织到一个父级项目中,以便一起构建和管理的机制。聚合可以帮助我们更好地管理一组相关的子项目,同时简化它们的构建和部署过程

聚合作用

  1. 管理多个子项目:通过聚合,可以将多个子项目组织在一起,方便管理和维护。
  2. 构建和发布一组相关的项目:通过聚合,可以在一个命令中构建和发布多个相关的项目,简化了部署和维护工作。
  3. 优化构建顺序:通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况。
  4. 统一管理依赖项:通过聚合,可以在父项目中管理公共依赖项和插件,避免重复定义。

聚合语法

    <project><groupId>com.example</groupId><artifactId>parent-project</artifactId><packaging>pom</packaging><version>1.0.0</version><!-- 父项目中包含的子项目列表 --><!-- module里写的是项目的路径 --><modules><module>child1-path</module><module>child2-path</module></modules></project>

聚合

maven私服

Maven 私服是一种特殊的Maven远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)

私服的优势

  1. 节省外网带宽
    消除对外部远程仓库的大量重复请求,降低外网带宽压力。

  2. 下载速度更快
    Maven私服位于局域网内,从私服下载构建更快更稳定。

  3. 便于部署第三方构件
    有些构件无法从任何一个远程仓库中获得,建立私服之后,就可以将这些构件部署到私服中,供内部Maven项目使用。

  4. 提高项目的稳定性,增强对项目的控制
    如果不建立私服,那么Maven项目的构件就高度依赖外部的远程仓库,若外部网络不稳定,则项目的构建过程也会变得不稳定。建立私服后,即使外部网络状况不佳甚至中断,只要私服中已经缓存了所需的构件,Maven也能够正常运行。

  5. 降低中央仓库得负荷压力
    由于私服会缓存中央仓库得构件,避免了很多对中央仓库的重复下载,降低了中央仓库的负荷

常见的Maven私服产品

  1. Apache的Archiva
  2. JFrog的Artifactory
  3. Sonatype的Nexus([ˈneksəs])

Nexus下载安装

  • Nexus下载地址

在这里插入图片描述
Nexus安装解压即可,进入bin目录下,执行./nexus /run命令启动
首页地址:http://localhost:8081/,8081为默认端口号

初始设置

在这里插入图片描述

  • 用户名:admin
  • 密码:查看Nexus解压后的admin.password文件
    禁用匿名登录
    用匿名登录
    初始化完成
    初始化完成

仓库介绍

在这里插入图片描述

仓库类型说明
proxy某个远程仓库的代理
group存放:通过 Nexus 获取的第三方 jar 包
hosted存放:本团队其他开发人员部署到 Nexus 的 jar 包
仓库名称说明
maven-centralNexus 对 Maven 中央仓库的代理
maven-publicNexus 默认创建,供开发人员下载使用的组仓库
maven-releasesNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 releases 版本
maven-snapshotsNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 snapshots 版本

配置Nexus下载jar包

1.修改本地maven的核心配置文件settings.xml,设置新的本地仓库地址

<!-- 配置一个新的 Maven 本地仓库 -->
<localRepository>D:/maven-repository-new</localRepository>
  1. 在servers标签下配置id、用户名、密码
<server><!-- nexus-id是自己设置的 --><id>nexus-id</id><username>user</username><password>password</password>
</server>
  1. 配置新的mirror标签
<mirror><id>nexus-id</id><mirrorOf>central</mirrorOf><name>Nexus mine</name><!-- url就是仓库的URL,点击copy复制 --><url>http://localhost:8081/repository/maven-public/</url>
</mirror>

注意:server 标签内的 id 标签值必须和 mirror 标签中的 id 值一样

部署jar包到Nexus

maven工程中配置如下,执行deploy命令上传

<distributionManagement><snapshotRepository><id>nexus-id</id><name>Nexus Snapshot</name><url>http://localhost:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

注意:这里 snapshotRepository 的 id 标签必须和 settings.xml 中指定的 mirror 标签的 id 属性一致

引用部署后jar包

maven工程中配置:

<repositories><repository><id>nexus-id</id><name>nexus-mine</name><url>http://localhost:8081/repository/maven-snapshots/</url><snapshots><enabled>true</enabled></snapshots><releases><enabled>true</enabled></releases></repository>
</repositories>

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

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

相关文章

Linux Ubuntu 安装配置RabbitMQ,springboot使用RabbitMQ

rabbit-Ubuntu 一篇文章学会RabbitMQ 在Ubuntu上查看RabbitMQ状态可以通过多种方式进行&#xff0c;包括使用命令行工具和Web管理界面。以下是一些常用的方法&#xff1a; 1-使用systemctl命令&#xff1a; sudo systemctl start rabbitmq-server sudo systemctl status ra…

LeetCode—189. 轮转数组(中等)

题目描述&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例1&#xff1a; 输入: nums [1,2,3,4,5,6,7], k 3输出:[5,6,7,1,2,3,4] 解释: 向右轮转 1 步:[7,1,2,3,4,5,6] 向右轮转 2 步:[6,7,1,2,3,4,5] 向…

微信小程序报错:http://159.75.169.224:7300不在以下 request 合法域名列表中,请参考文档

要解决此问题&#xff0c;需打开微信小程序开发者工具进行设置&#xff0c;打开详情-本地设置重新运行&#xff0c;该报错就没有啦

vrrp主备备份

VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由冗余协议&#xff09;是一种用于实现路由器冗余以提高网络可靠性的协议。以下是对VRRP的详细介绍&#xff1a; 基本概念 VRRP路由器&#xff1a;运行VRRP协议的路由器称为VRRP路由器。虚拟路由器&#…

Selenium:强大的 Web 自动化测试工具

Selenium&#xff1a;强大的 Web 自动化测试工具 在当今的软件开发和测试领域&#xff0c;自动化工具的重要性日益凸显。Selenium 就是一款备受欢迎的 Web 自动化测试工具&#xff0c;它为开发者和测试人员提供了强大的功能和便利。本文将详细介绍 Selenium 是什么&#xff0c…

Spark架构及运行流程

Spark架构图 Driver&#xff1a; 解析用户的应用程序代码&#xff0c;转化为作业(job)。创建SparkContext上下文对象&#xff0c;其负责与资源管理器(ClusterManager)通信&#xff0c;进行资源的申请、任务的分配和监控等。跟踪Executor的执行情况。可通过UI界面查询运行情况。…

【大模型系列篇】LLaMA-Factory大模型微调实践 - 从零开始

前一次我们使用了NVIDIA TensorRT-LLM 大模型推理框架对智谱chatglm3-6b模型格式进行了转换和量化压缩&#xff0c;并成功部署了推理服务&#xff0c;有兴趣的同学可以翻阅《NVIDIA TensorRT-LLM 大模型推理框架实践》&#xff0c;今天我们来实践如何通过LLaMA-Factory对大模型…

iOS如何自定义一个类似UITextView的本文编辑View

对于IOS涉及文本输入常用的两个View是UITextView和UITextField&#xff0c;一个用于复杂文本输入&#xff0c;一个用于简单文本输入&#xff0c;在大多数开发中涉及文本输入的场景使用这两个View能够满足需求。但是对于富文本编辑相关的开发&#xff0c;这两个View就无法满足自…

Android 使用 Canvas 和 Paint 实现圆角图片

学习笔记 效果展示: 全部代码: public class YuanActivity extends AppCompatActivity {private ActivityYuanBinding binding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 通过 DataBinding 获取布局文件binding …

Java设计模式 —— 【创建型模式】建造者模式详解

文章目录 一、建造者模式二、案例实现三、优缺点四、模式拓展五、对比1、工厂方法模式VS建造者模式2、抽象工厂模式VS建造者模式 一、建造者模式 建造者模式&#xff08;Builder Pattern&#xff09; 又叫生成器模式&#xff0c;是一种对象构建模式。它可以将复杂对象的建造过…

泷羽sec学习打卡-brupsuite4

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-proxy proxyInterceptHTTP history/WebSocket history&#xff08;历史记录&a…

redis数据结构和内部编码及单线程架构

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:数据库 JavaEE专栏:JavaEE 软件测试专栏:软件测试 关注博主带你了解更多知识 1. 数据结构和内部编码 Redis会在合适的场景选择合适的内部编码 我们可以通过objectencoding命令查询内部编码 : 2. 单线程架构 …

旅游管理系统的设计与实现

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;旅游管理系统的设计与实现 摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#…

AIGC 与艺术创作:机遇

目录 一.AIGC 的崛起与艺术领域的变革 二.AIGC 在不同艺术形式中的应用 1.绘画与视觉艺术 2.音乐创作 三.AIGC 为艺术创作带来的机遇 1.激发创意灵感 2.提高创作效率 总结 在当今数字化时代&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;正以惊人的速度重塑…

Linux下的编程

实验7 Linux下的编程 一、实验目的 熟练掌握Linux下Python编程的方法、函数调用方法以及shell编程中的控制结构。 二、实验环境 硬件&#xff1a;PC电脑一台&#xff0c;网络正常。 配置&#xff1a;win10系统&#xff0c;内存大于8G &#xff0c;硬盘500G及以上。 软件&a…

「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果

本篇将带你实现一个带有闪烁动画的按钮交互效果。通过动态改变按钮颜色&#xff0c;用户可以在视觉上感受到按钮的闪烁效果&#xff0c;提升界面互动体验。 关键词 UI互动应用闪烁动画动态按钮状态管理用户交互 一、功能说明 闪烁按钮效果应用实现了一个动态交互功能&#xf…

智能安全新时代:大语言模型与智能体在网络安全中的革命性应用

一、引言 随着信息技术的飞速发展&#xff0c;网络安全问题日益严重&#xff0c;成为各行各业面临的重大挑战。传统的安全防护措施已难以应对日益复杂的网络威胁&#xff0c;人工智能&#xff08;AI&#xff09;技术的引入为网络安全带来了新的希望。特别是大语言模型&#xff…

深度学习(2)前向传播与反向传播

这一次我们重点讲解前向传播与反向传播&#xff0c;对这里还是有点糊涂 前向传播&#xff08;Forward Propagation&#xff09;和反向传播&#xff08;Backward Propagation&#xff09;是深度学习中神经网络训练的核心过程。它们分别负责计算神经网络的输出以及更新神经网络的…

数据结构——图(遍历,最小生成树,最短路径)

目录 一.图的基本概念 二.图的存储结构 1.邻接矩阵 2.邻接表 三.图的遍历 1.图的广度优先遍历 2.图的深度优先遍历 四.最小生成树 1.Kruskal算法 2.Prim算法 五.最短路径 1.单源最短路径--Dijkstra算法 2.单源最短路径--Bellman-Ford算法 3.多源最短路径--Floyd-…

SSM报错:表现层方法应该返回字符串,但是返回页面

在进行SSM项目时&#xff0c;后端表现层应该返回给前端字符串&#xff0c;但是却跳转页面 1.首先检查是否使用ResponseBody注解 ResponseBody注解 作用&#xff1a;将java对象转为json格式的数据。将controller的方法返回的对象通过适当的转换器转换为指定的格式之后&#xff0…