框架基础-Maven+SpringBoot入门

框架基础

Maven基础

  1. Maven概述

    Maven是为Java项目提供项目构建和依赖管理的工具

  2. Maven三大功能

- 项目构建
	构建:是一个将代码从开发阶段到生产阶段的一个过程:清理,编译,测试,打包,安装,部署等
- 依赖管理
	Jar包下载,Jar包依赖,jar包冲突
- 契约编程
	约定大于配置,配置大于编码

注意:Maven连接远程仓库是需要联网的,如果没有网络那么会构建失败

  1. Maven仓库

所谓仓库就是用来存放Jar包和插件的地方,在Maven中仓库又分为三种:

  • 本地仓库

  • 远程仓库

    • 中央仓库
    中央仓库依赖搜索地址,**建议收藏**:https://mvnrepository.com/
    
    • 私服仓库

    注意:私服仓库搭建技术:Nexus

  1. Maven配置
第一步:创建本地仓库文件夹
第二步:修改settings.xml配置文件中的本地仓库地址
第三步:配置阿里云镜像
第四步:配置JDK版本

注意:记得保存配置

  1. Maven坐标

    Maven中的坐标是项目的唯一标识,通过该坐标可以确定项目Jar包在仓库中的位置,也可以通过坐标来引入项目中所需要的三方依赖

    Maven坐标主要组成

    • groupId:当前Maven项目隶属于组织名称,通常都是公司域名反写,例如:cn.itsource
    • artifactId:项目或者是项目中的一个模块的名称
    • version:当前Maven项目版本号,根据需求进行设定
      • SNAPSHOT:快照版本,正在迭代过程中,不稳定的版本
      • RELEASE:释放,表示正式版本,稳定版本

    注意:当我们需要某一个jar包时,可以通过坐标本地仓库的jar包或依赖包

    当然:我们的项目也可以安装到本地仓库,执行install命令将项目打成Jar包放在本地仓库中

     <parent>
            <groupId>cn.zhj</groupId>
            <artifactId>parent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
  2. Maven命令

**mvn compile:**编译 - 将java源文件.java 编译成 字节码文件.class

**mvn clean:**清理 - 将编译好的字节码文件删除掉

**mvn clean compile:**清理+编译

**mvn test:**测试 - 运行测试代码,测试代码编译在target的test-classes中

​	注意:src/test/java中的所有测试类的所有方法都会自动运行,但是测试类的类名有要求:TestXxx 或 XxxTest

**mvn package:**打包【.class字节码文件】

**mvn source:jar:**打源码包【.java文件】

**mvn install:**安装 - 将项目打包然后将jar包安装到本地仓库中

**mvn package -Dmaven.test.skip=true:**打包的时候跳过测试类

注意:测试的时候看下目录结构的变化和maven仓库目录的变化

  1. 搜索并下载依赖

    第一步:中央仓库依赖搜索地址:https://mvnrepository.com/

    第二步:将搜索到的依赖导入拷贝到pom.xml中,然后点击刷新,点击刷新时如果本地仓库有当前版本的依赖就不会去下载,直接引用本地仓库的依赖。如果没有就会去远程仓库下载,下载到本地再引用

    注意:如果本地仓库有,可以直接提示直接引入

  2. IDEA执行Maven命令

    在IDEA中执行Maven命令非常简单,只需要点击右侧Maven按钮,然后在工程的生命周期中双击想要执行的命令即可

  3. 查看工程依赖(略)

  4. 依赖传递

    在Maven中依赖是具有传递性的,例如我们刚才项目中只引入了Junit依赖,但是我们也间接依赖了Junit的其他依赖。在Maven项目中依赖分为直接依赖和间接依赖:

    • 直接依赖:Junit就是工程的直接依赖

    • 间接依赖:hamcrest-core就是工程的间接依赖

  5. 依赖排除

    Maven具有依赖的传递性对我们来说是非常大的一个好处,因为这样就避免我们需要去自己引入间接依赖。但是有时候我们在引入多个依赖时,简介依赖的版本不一致会导致依赖冲突,那么此时我们就需要阻断依赖。以Junit为例,阻断间接依赖

	<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
        <!--排除依赖标签,可以写多个-->
        <exclusions>
            <!--排除依赖标签,写具体要排除那个依赖,只需要写GA坐标即可-->
            <exclusion>
                <!--要排除依赖的G坐标-->
                <groupId>org.hamcrest</groupId>
                <!--要排除依赖的A坐标-->
                <artifactId>hamcrest-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
  1. 依赖范围

在Maven中依赖是具有作用范围的,默认情况下依赖的Jar包在任何地方都可以使用,我们可以通过…进行依赖作用范围的指定:

  • 主程序范围有效:main文件夹范围内
  • 测试程序范围有效:test文件夹范围内
  • 是否参与打包运行:package指令范围内

scope取值

scope值主程序main测试程序test打包/运行
compile–默认YYY
testNYN
providedYYN
runtime-YY
  1. 清理Maven仓库

    初始情况下,我们的本地仓库是没有任何Jar包的,第一次会联网进行下载,可能由于网络的原因,Jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾

    注意:如果依赖下载失败,Maven识别到以lastUpdated结尾的文件后就不会再重新帮你下载,需要你删除这些以lastUpdated结尾的文件,然后Maven才会再次自动下载这些Jar包,以后实际开发中如果项目引入了某Jar包刷新后依赖依然报错,那么就需要检查一下此Jar包是否下载成功

    解决方案:有时下载依赖有可能批量下载失败,那么此时我们手动去挨着找就非常麻烦,那么我们可以定义一个脚本文件,双击即可全部清除

    第一步:在桌面创建一个del_lastUpdated.bat文件,创建文本改后缀即可

    第二步:右键编辑bat文件,拷贝以下命令并修改本地仓库文件夹绝对地址

    set REPOSITORY_PATH=本地仓库文件夹绝对地址
    rem 正在搜索...
    del /s /q %REPOSITORY_PATH%\*.lastUpdated
    rem 搜索完毕
    pause
    

    第三步:双击执行脚本,即可清除本地仓库下所有lastUpdated文件

Maven高级

继承

在Java中有继承的概念,就是子类继承父类的所有方法和属性。在Maven中同样有继承的概念并且与Java一致都是单继承,本质上Maven的继承就是pom.xml配置的继承

  • A工程继承了B工程,那么A工程就继承了B工程的pom.xml所有配置
  • Maven继承的层级是没有限制的,大型互联网项目中层级会非常多,我们只需要按照规则去梳理层级即可
  1. 为什么需要继承

    原因一:真实开发中,依赖动则几十上百个依赖,那么这些依赖的版本管理是非常复杂的,为了方便版本管理,那么可以在父工程中统一管理版本信息。子工程直接使用对应版本即可,SpringBoot框架就是使用了Maven继承手段进行开发简化

    原因二:真实开发中,一个项目会有很多个子工程,这些子工程都有自己的依赖,那么肯定会有一些重复的依赖,为了减少子工程重复导入依赖坐标信息,可以放在父工程中进行依赖抽取,子工程通过继承的方式进行依赖的引入

  2. 搭建Maven继承工程

    第一步:创建一个Maven工程

    第二步

    • 删除父工程下的src文件夹,因为父工程只负责管理pom.xml,不负责编写代码,所以不需要src文件
    • 修改打包方式为pom,只有打包方式为pom的工程,才能管理其他Maven工程

    第三步:创建子工程/Maven模块

  3. 父子工程解析

    • 子工程创建好之后,会自动生成parent标签,指向父工程的GAV坐标
    • 子工程是不需要写GV坐标的,因为继承自父工程,子工程只需要提供A坐标即可
    • 父工程中有子工程后会自动生成modules标签,代表聚合配置,后续会进行讲解
  4. 父工程管理依赖

    第一步:父工程管理依赖

    • dependencyManagement:此标签用于在父工程中管理依赖,但是不负责引入此依赖到工程中,子工程需要使用什么依赖还是需要在自己的子工程中手动引入,只是不需要引入版本,版本来自父工程

    第二步:子工程引入依赖

  5. 配置自定义属性

    父工程在真实开发中会管理众多的依赖,那么这些依赖的版本号如果都写在各自的GAV坐标中其实管理起来也颇为复杂,所以我们可以自定义属性进行管理

    • properties:此标签是配置标签,我们可以在标签内自定义标签来定义属性值,此属性值可以被引用
      • itsource.junit.version:此标签是自定义的,标签名称就是属性引用名称,标签的值就是版本值
    • ${}:通过此方式可以引入自定义属性,大括号中的值就是自定义标签的值

项目结构:

在这里插入图片描述

实例代码:

<!-- parent的pom.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.zhj</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>pom</packaging>
    <modules>
        <module>son1</module>
        <module>son2</module>
    </modules>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <dom4j-version>1.1</dom4j-version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>${dom4j-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
<!--            <scope>test</scope>-->
        </dependency>
    </dependencies>

</project>
<!-- son1的pom.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>cn.zhj</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>son1</artifactId>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
        </dependency>
    </dependencies>

</project>
<!-- son2的pom.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>cn.zhj</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>son2</artifactId>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
        </dependency>
    </dependencies>
</project>

聚合

  1. 什么是聚合

    在父pom.xml中的modules标签就是聚合标签,他表示了此工程由哪些模块组成,modules下的module也代表了此父工程管理了哪些子模块

  2. 聚合的好处

    好处一:如果没有聚合,那么我们例如在执行mvn install命令时,Maven会要求有父工程时先安装父工程,有依赖工程时先安装依赖工程,那么我们自己来考虑这些规则就非常麻烦,我们可以直接对父工程执行mvn install,那么整个工程就自动打包好了

    好处二:配置聚合之后,各个子模块在父工程中展示一个列表,可以快速让我们知道整个项目的继承结构

MAVEN扩展知识

1. IDEA的目录结构
 Maven项目结构:
     .idea目录 - idea中项目配置文件,如果删除了项目崩溃
 	src - 项目开发目录
 	target - maven项目编译目录
 	.gitignore - git项目版本控制器上传到码云gitee,githup上时忽略文件
 	pom.xml - maven项目核心配置文件
 	设置如何不显示再IDEA中:
 		settings - Editor - File Types - Ignored Files and Folders

Spring概述

Spring发展史

  1. Spring时代

    Spring框架于2003年首次发布,由Rod Johnson创立,它的目标是简化Java开发,并提供一种更灵活、高效的替代方案

    Spring框架引入了依赖注入(DI)和面向切面编程(AOP)等新概念,以减少组件之间的耦合度、提高代码的可维护性和可测试性

    Spring通过IoC容器(控制反转容器)来管理对象之间的依赖关系,并提供了许多其他功能模块,如数据访问、事务管理、安全性等,使开发者能够更专注于业务逻辑的实现

    **小结:**Spring提供IOC控制反转 - 管理对象,提供了AOP - 抽取公共业务

  2. SpringBoot时代

    随着时间的推移,Spring框架变得越来越强大和复杂,为了简化Spring应用程序的开发和部署,SpringBoot在2014年推出

    Spring Boot是一个用于快速构建独立的、生产级的Spring应用程序的框架。它采用了约定大于配置的原则,通过自动配置和默认值设置,减少了繁琐的配置工作,提供了更简单、更轻量级的开发体验

    Spring Boot还集成了一些常用的第三方库和工具,如内嵌的Servlet容器、自动化的构建工具(如Maven和Gradle)、健康检查、监控等,使开发者能够更快速地启动和运行Spring应用程序

  3. 总结

    总体而言,Java企业级开发经历了从繁琐复杂的Java EE时代到简化灵活的Spring时代,再到更快速便捷的Spring Boot时代的演进

    这些框架和工具的不断演进和创新,推动了Java开发领域的发展,为开发者提供了更好的工具和技术支持,助力他们构建出高质量、可扩展的企业级应用程序

    现在在Java领域Spring已经形成了一种开发生态圈了,Spring提供了各个领域的开发解决方案,所以现在在任何Java项目中都有Spring的身影,有一句话叫做面向Spring编程,毫不夸张。Spring的这一套技术我们也称为Spring全家桶【spring,springJDBC,SpringMvc,SpringBoot,SpringCloud】

Spring简介

Spring框架全称SpringFramework,一般都简称为Spring

官网地址:https://spring.io/

在Spring中提供了很多的开源项目,这些开源项目为我们在Java开发中提供了各个领域的解决方案

在Spring全家桶中的众多项目中,SpringFramework项目是最为核心的,所有的项目都是基于Spring Framework的,其中SpringBoot是SpringFramework的高级版本

为什么不再选择Spring

  • 在企业级开发中,我们选择Spring Framework进行开发,那么我们会面临两个问题

    • 配置繁琐
    • 入门难度大

    SpringBoot中,很多配置都是已经默认配置好了,所以不再需要我们手动配置,但是Spring Framework则不然,这些配置不配置好就无法使用。同样的入门,在SpringFramework中可能需要半个小时,但是SpringBoot只需要5分钟

  • 现在企业都在追求高效开发,因为高效就意味着高利润,所以市面上的Java项目基本上都是基于SpringBoot进行开发。官方目前也更加推荐使用SpringBoot作为Java开发,并且在后续的SpringCloud微服务项目中,我们也必须需要使用SpringBoot

  • 使用SpringFramework开发web项目时,开发和部署都比较复杂,SpringBoot内置Tomcat,启动项目就像启动一个main方法一样的简单

SpringBoot入门

入门实现

搭建SpringBoot工程并实现浏览器与Java项目交互

实现步骤

第一步:使用SpringBoot骨架搭建SpringBoot项目

第二步:

  • SpringBoot依赖有很多版本,我们学习使用SpringBoot-2.6.13
  • 勾选初始化依赖,SpringBoot项目必须需要Web依赖,所以我们需要勾选Web依赖。其他依赖在以后项目使用中根据实际需要进行勾选

第三步:Springboot创建需要联网下载资源,等待构建完成即可

第四步:使用SpringBoot骨架进行创建会默认生成一些我们暂时使用不到的文件,为了项目简洁我们删除即可

第五步:创建请求处理类

  • 请求处理类:专门用来接收前端发起到后端的请求
  • 存储规范:请求处理类按照规范必须放入到controller包下

第六步:运行SpringBoot项目

  • SpringBoot项目中定义了一个启动类,运行这个启动类可以把整个SpringBoot项目运行起来

第七步:浏览器访问

浏览器输入地址:http://localhost:8080/hello

项目结构:

在这里插入图片描述

访问原理解析

  1. 入门案例访问原理

    1. 运行启动类启动项目,SpringBoot内置Tomcat,启动成功会看到控制台的默认端口号8080
    2. 当在地址栏输入http://localhost:8080/hello时,浏览器访问的就是当前项目
    3. 然后是用/hello去匹配我们的控制器Controller,即匹配注解@RequestMapping请求映射注解
    4. 匹配上之后就会自动执行hello方法中的内容
    

注解:

@RestController // 创建当前类的对象
@RequestMapping("/hello/a") // 请求映射 - 匹配请求【从上下文路径后面开始算】,匹配上之后会执行当前方法的所有代码 - 实例方法【通过对象】
@RequestMapping("/hello/a")中的("/hello/a") // http://localhost:8080/上下文路径/hello/a
@SpringBootApplication // 申请当前类是一个SpringBootApplication的启动类 - 启动 - main方法启动

application.properties:

#端口
server.port=80
#应用的上下文路径,也可以称为项目路径,是构成url地址的一部分,就是在你所有的请求路径之前加了一个前缀
server.servlet.context-path=/
  1. 资源路径

    • URL

      什么是URL:URL称为统一资源定位符,可以直接使用此地址找到互联网上的资源。例如:接口、页面

      URL组成:协议名://IP地址:端口号/资源名称。例如:http://localhost:8080/hello

    • URI

    什么是URI:URI统一资源标识符,俗称请求资源路径,URL地址中端口号后面的地址叫做URI。例如:/hello

“/hello/a”) // http://localhost:8080/上下文路径/hello/a
@SpringBootApplication // 申请当前类是一个SpringBootApplication的启动类 - 启动 - main方法启动


application.properties:

#端口
server.port=80
#应用的上下文路径,也可以称为项目路径,是构成url地址的一部分,就是在你所有的请求路径之前加了一个前缀
server.servlet.context-path=/




2. 资源路径

   - URL

     什么是URL:URL称为统一资源定位符,可以直接使用此地址找到互联网上的资源。例如:接口、页面

     URL组成:协议名://IP地址:端口号/资源名称。例如:http://localhost:8080/hello

   -  URI

     什么是URI:URI统一资源标识符,俗称请求资源路径,URL地址中端口号后面的地址叫做URI。例如:/hello

 **区别**:URL包含URI,URI只是URL的一部分

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决kali beef启动失败解问题

只限于出现这个提示的时候使用 卸载 ruby apt remove ruby 卸载 beef apt remove beef-xss 重新安装ruby apt-get install ruby apt-get install ruby-dev libpcap-dev gem install eventmachine 重新安装beef apt-get install beef-xss 弄完以上步骤如果还是不行就重启kali再试…

Axure租房平台用户端APP原型图,房屋租赁高保真模板45页

作品概况 页面数量&#xff1a;共 40 页 兼容软件&#xff1a;仅支持Axure RP 9/10&#xff0c;非程序软件无源代码 应用领域&#xff1a;租房平台、房屋租赁领域 作品特色 本作品为房屋租赁用户端app原型&#xff0c;产品定位为&#xff1a;提供本地租房信息、出租房源信息…

MFC CAsyncSocket类作为客户端示例

之前写过CAsyncSocket类使用的博客;进一步看一下; VS新建一个MFC 对话框工程; 添加一个类,从CAsyncSocket继承,起个自己的名字; 对话框添加几个编辑框,按钮,静态控件; 为自己的CxxxAsyncSocket类添加重写的虚函数,OnConnect、OnReceive、OnSend; 自己的CAsyncSoc…

vue2+webpack升级vue3+vite,报错Cannot read properties of null (reading ‘isCE‘)

同学们可以私信我加入学习群&#xff01; 正文开始 前言问题分析解决总结 前言 系列文章&#xff1a;vue2webpack升级vue3vite&#xff0c;修改插件兼容性bug 前面的文章主要是介绍&#xff0c;在升级初始阶段遇到的一些显而易见的兼容性问题和bug。随着项目迭代的不断深入&a…

MySQL命令大全和实例

文章目录 1. 数据库管理2. 表操作3. 数据操作&#xff08;CRUD&#xff09;4. 条件查询与排序5. 聚合函数和分组6. 用户权限管理7. 其他操作8. 视图操作9. 索引操作10. 子查询与连接查询11. 插入多行数据12. 删除满足特定条件的表中所有数据13. 清空表&#xff08;保留表结构&a…

《人工智能行业发展趋势十大关键词:揭示未来科技浪潮》

人工智能&#xff08;AI&#xff09;作为当今科技领域最具前景的行业之一&#xff0c;正在取得飞速发展。让我们一起来看看人工智能行业的十大关键词&#xff0c;以了解其发展趋势。 大数据&#xff1a; 大数据是人工智能的重要基础。随着互联网和物联网的快速发展&#xff0c;…

四川古力未来科技公司:抖音小店的靠谱之选

在如今这个数字化时代&#xff0c;科技日新月异&#xff0c;电子商务发展迅猛。四川古力未来科技公司凭借其敏锐的市场洞察力&#xff0c;早已在抖音小店开设了官方店铺。那么&#xff0c;这家公司在抖音小店的运营情况如何&#xff1f;是否值得信赖&#xff1f;接下来&#xf…

❤ Uniapp使用四( 高阶使用配置和各种实现篇)

❤ Uniapp使用四( 复杂配置和各种实现篇) uniapp引入 vant 引入方式 1、下载vant源码 方式一&#xff1a;从 Vant 官网首页进入 GitHub下载对应版本的压缩包,将文件解压后备用,确保下载的压缩包里有dist 文件夹 2、创建 uniapp 项目,在根目录下新建 一个文件夹wxcomponents …

数据分析中常用的指标或方法

一、方差与标准差二、协方差三、皮尔逊系数四、斯皮尔曼系数 一、方差与标准差 总体方差 V a r ( x ) σ 2 ∑ i 1 n ( x i − x ˉ ) 2 n ∑ i 1 n x i 2 − n x ˉ 2 n E ( x 2 ) − [ E ( x ) ] 2 Var(x)\sigma^2\frac {\sum\limits_{i1}^{n} (x_i - \bar{x})^2} {n…

AMP“双系统”加持,飞凌嵌入式RK3568核心板强实时性再升级

如果要选出飞凌嵌入式最热门的几款产品&#xff0c;FET3568-C系列核心板一定榜上有名。这款高性价比的全能型核心板上市两年来已赢得了数千家客户的青睐。飞凌嵌入式也在不断对它进行升级——从“配置新增”到“100%国产化认证”再到“新系统适配”&#xff0c;以满足更多行业客…

Flutter GetX 之 国际化

今天给大家介绍一下 GetX 的国际化功能,在日常开发过程中,我们经常会使用到国际化功能,需要们的应用支持 国际化,例如我们需要支持 简体、繁体、英文等等。 上几篇文章介绍了GetX的 路由管理 和 状态管理,看到大家的点赞和收藏,还是很开心的,说明这两篇文章给大家起到了…

RPA发送预警短信,新加坡警方与4家银行联合,避免约6943万美元损失

近日&#xff0c;新加坡警方反诈骗中心&#xff08;ASC&#xff09;联合包括星展银行、大华银行、华侨银行和渣打银行在内的四家银行&#xff0c;共同运用机器人流程自动化&#xff08;RPA&#xff09;技术&#xff0c;针对就业、投资等类型的诈骗行为&#xff0c;有效识别受害…

编写RedisUtil来操作Redis

目录 ​编辑 Redis中文网 第一步&#xff1a;建springboot项目 第二步&#xff1a;导依赖 第三步&#xff1a;启动类 第四步&#xff1a;yml 第五步&#xff1a;Redis配置类 第六步&#xff1a;测试类 第七步&#xff1a;编写工具类 RedisUtil 第八步&#xff1a;编写…

MySQL视图索引基础练习

表定义 学生表&#xff1a;Student (Sno, Sname, Ssex , Sage, Sdept) 学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;所在系 Sno为主键 课程表&#xff1a;Course (Cno, Cname,) 课程号&#xff0c;课程名 Cno为主键 学生选课表&#xff1a;SC (Sno, C…

码云星辰:未来运维的技术交响曲

&#x1f6a9;本文介绍 ​ 随着信息技术的迅猛发展&#xff0c;运维领域正经历着翻天覆地的变革。未来的运维工程师将需要拥有更广泛、更深入的技能&#xff0c;以适应日益复杂和多变的系统环境。本文将深入探讨运维未来的行业发展趋势&#xff0c;并详细分析需要掌握的关键技…

【性能优化】GSON解性能瓶颈分析

一、背景 GSON是Google提供的开源库&#xff0c;使用很便捷&#xff0c;但是在使用过程中也发现了其短板。在Bean类结构复杂时&#xff0c;进行反序列化耗时较长&#xff0c;尤其是很多在应用启动阶段需要反序列化一些内置的数据时&#xff0c;很让人头疼&#xff0c;通过抓Tra…

学生云服务器_学生云主机_学生云数据库_云+校园特惠套餐

腾讯云学生服务器优惠活动&#xff1a;轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年&#xff0c;轻量应用服务器4核8G配置112元3个月、352.8元6个月、646.8元一年&#xff0c;CVM云服务器2核4G3M公网带宽配置842.4元一年&#xff0c;腾讯云服务器网txyfwq.com分享…

力扣电话号码的组合

文章目录 题目说明做题思路代码实现代码解析 题目链接 题目说明 首先我们先分析一下这个题目题目中说呢先给出一个字符串这个字符串其实就是这个九键数字我们要按照要求将数字所代表的字符进行自由组合形成一个字符串并且这个字符串的长度和输入的数字字符串长度相同&#xff0…

element-ui tree树形结构全选、取消全选,展开收起

控制树形结构全选、取消全选&#xff0c;展开收起 <template><div><!-- 添加 ref"tree" 属性--><el-tree:data"data"show-checkboxdefault-expand-allnode-key"id"ref"tree"highlight-current:props"defa…

使用Python操纵Word自动编写离职报告

目录 一、背景介绍 二、技术原理 三、实现步骤 1、安装python-docx库 2、创建Word文档 3、添加标题和内容 4、添加表格和图片 5、设置样式和格式化文本 6、保存文档 四、注意事项与建议 总结 随着现代社会的发展&#xff0c;自动化和智能化已经成为各行各业追求的目…