当前位置: 首页 > news >正文

SpringBoot 基础知识汇总

一、环境准备

Java:Spring Boot 3.0.2 需要 Java 17,并且与 Java 19 兼容

Maven:Apache Maven 3.5 或更高版本兼容

二、启动器

以下应用程序启动器由 Spring Boot 在该组下提供:org.springframework.boot

表 1.Spring 引导应用程序启动器

名字

描述

spring-boot-starter

核心启动器,包括自动配置支持、日志记录和 YAML

spring-boot-starter-amqp

使用Spring AMQP和Rabbit MQ的入门

spring-boot-starter-aop

使用Spring AOP和AspectJ进行面向方面的编程的入门器

spring-boot-starter-artemis

使用 Apache Artemis 的 JMS 消息传递入门

spring-boot-starter-batch

使用弹簧批处理的启动器

spring-boot-starter-cache

使用 Spring 框架缓存支持的入门工具

spring-boot-starter-data-cassandra

使用 Cassandra 分布式数据库和 Spring Data Cassandra 的入门

spring-boot-starter-data-cassandra-reactive

使用 Cassandra 分布式数据库和 Spring Data Cassandra Reactive 的入门

spring-boot-starter-data-couchbase

使用Couchbase面向文档的数据库和Spring Data Couchbase的入门

spring-boot-starter-data-couchbase-reactive

用于使用 Couchbase 面向文档的数据库和 Spring Data Couchbase Reactive 的入门

spring-boot-starter-data-elasticsearch

使用Elasticsearch搜索和分析引擎以及Spring Data Elasticsearch的入门工具

spring-boot-starter-data-jdbc

使用Spring Data JDBC的入门器

spring-boot-starter-data-jpa

将 Spring Data JPA 与 Hibernate 一起使用的入门程序

spring-boot-starter-data-ldap

使用Spring Data LDAP的入门

spring-boot-starter-data-mongodb

使用MongoDB面向文档的数据库和Spring Data MongoDB的入门

spring-boot-starter-data-mongodb-reactive

使用MongoDB面向文档的数据库和Spring Data MongoDB反应式的入门

spring-boot-starter-data-neo4j

使用 Neo4j 图形数据库和 Spring Data Neo4j 的入门

spring-boot-starter-data-r2dbc

使用弹簧数据R2DBC的入门器

spring-boot-starter-data-redis

将 Redis 键值数据存储与 Spring Data Redis 和 Lettuce 客户端一起使用的入门

spring-boot-starter-data-redis-reactive

将 Redis 键值数据存储与 Spring Data Redis 反应式和生菜客户端一起使用的入门

spring-boot-starter-data-rest

使用Spring Data REST通过REST公开Spring Data Repository的入门程序

spring-boot-starter-freemarker

使用 FreeMarker 视图构建 MVC Web 应用程序的入门器

spring-boot-starter-graphql

使用 Spring GraphQL 构建 GraphQL 应用程序的入门器

spring-boot-starter-groovy-templates

使用 Groovy 模板视图构建 MVC Web 应用程序的入门工具

spring-boot-starter-hateoas

使用Spring MVC和Spring HATEOAS构建基于超媒体的RESTful Web应用程序的入门

spring-boot-starter-integration

使用弹簧集成的启动器

spring-boot-starter-jdbc

将 JDBC 与 HikariCP 连接池一起使用的入门

spring-boot-starter-jersey

使用 JAX-RS 和 Jersey 构建 RESTful Web 应用程序的入门工具。弹簧启动启动网的替代方案

spring-boot-starter-jooq

使用 jOOQ 通过 JDBC 访问 SQL 数据库的入门工具。spring-boot-starter-data-jpa 或 spring-boot-starter-jdbc 的替代方案

spring-boot-starter-json

用于读取和写入 json 的入门器

spring-boot-starter-mail

使用Java Mail和Spring Framework的电子邮件发送支持的入门

spring-boot-starter-mustache

使用 Mustache 视图构建 Web 应用程序的入门器

spring-boot-starter-oauth2-client

使用Spring Security的OAuth2 / OpenID Connect客户端功能的入门

spring-boot-starter-oauth2-resource-server

使用Spring Security的OAuth2资源服务器功能的入门

spring-boot-starter-quartz

使用石英调度程序的入门器

spring-boot-starter-rsocket

用于构建 RSocket 客户端和服务器的入门器

spring-boot-starter-security

使用弹簧安全性的入门

spring-boot-starter-test

用于测试Spring Boot应用程序的入门器,包括JUnit Jupiter,Hamcrest和Mockito等库

spring-boot-starter-thymeleaf

使用 Thymeleaf 视图构建 MVC Web 应用程序的入门器

spring-boot-starter-validation

将 Java Bean Validation 与 Hibernate Validator 结合使用的入门程序

spring-boot-starter-web

用于构建Web的入门工具,包括使用Spring MVC构建Web(包括RESTful)的应用程序。使用 Tomcat 作为默认的嵌入式容器

spring-boot-starter-web-services

使用 Spring Web 服务的入门器

spring-boot-starter-webflux

使用 Spring Framework 的响应式 Web 支持构建 WebFlux 应用程序的入门工具

spring-boot-starter-websocket

使用Spring Framework的MVC WebSocket支持构建WebSocket应用程序的入门工具

除了应用程序启动器之外,以下启动器还可用于添加生产就绪功能:

表 2.Springboot启动器

名字

描述

spring-boot-starter-actuator

使用Spring Boot执行器的入门,该执行器提供生产就绪功能,可帮助您监视和管理应用程序

最后,Spring Boot 还包括以下启动器,如果要排除或交换特定的技术方面,可以使用它们:

表 3.Springboot技术启动器

名字

描述

spring-boot-starter-jetty

使用 Jetty 作为嵌入式 servlet 容器的入门工具。弹簧启动启动器-雄猫的替代品

spring-boot-starter-log4j2

使用 Log4j2 进行日志记录的入门程序。弹簧引导启动日志记录的替代方案

spring-boot-starter-logging

使用回日志进行日志记录的启动器。默认日志记录启动器

spring-boot-starter-reactor-netty

使用 Reactor Netty 作为嵌入式反应式 HTTP 服务器的入门程序。

spring-boot-starter-tomcat

使用 Tomcat 作为嵌入式 servlet 容器的入门工具。spring-boot-starter-web 使用的默认 servlet 容器启动器

spring-boot-starter-undertow

使用 Undertow 作为嵌入式 servlet 容器的入门工具。弹簧启动启动器-雄猫的替代品

要了解如何交换技术方面,请参阅交换 Web 服务器和日志记录系统的操作文档。

三、配置类

Spring Boot 倾向于基于 Java 的配置。 尽管SpringApplication 可以与 XML 源一起使用,但我们通常建议将主源设置为单个类@Configuration。 通常,用@Configuration定义一个有main方法的类。

3.1. 导入其他配置类

当你不需要把所有的东西都放在一个Class里时。 @Import注释可用于导入其他配置类。或者,您可以使用@ComponentScan 自动加载所有 Spring 组件,包括类。

@Import({ 类名.class , 类名.class... })
public class Appcalss {}

3.2自动配置

Spring 引导自动配置会尝试根据您添加的 jar 依赖项自动配置 Spring 应用程序。 例如,如果位于您的类路径上,并且您尚未手动配置任何数据库连接 bean,则 Spring 引导会自动配置内存数据库。

@EnableAutoConfiguration:启用Spring Boot的自动配置机制,类似在java代码中自动import,属于自动导入

@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import({ SomeConfiguration.class, AnotherConfiguration.class })
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}}

禁用特定的自动配置类

如果发现正在应用不需要的特定自动配置类,则可以使用 的 exclude 属性来禁用它们,如以下示例所示:@SpringBootApplication

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {}

四、使用@SpringBootApplication注释

许多 Spring Boot 开发人员喜欢他们的应用程序使用自动配置、组件扫描并能够在他们的“应用程序类”上定义额外的配置。 单个注释可用于启用这三个功能,即:@SpringBootApplication

  • @EnableAutoConfiguration:启用 Spring 启动的自动配置机制

  • @ComponentScan:在应用程序所在的包上启用扫描(请参阅最佳实践)@Component)

  • @SpringBootConfiguration:在上下文中启用额外 Bean 的注册或导入其他配置类。 Spring 标准的替代方案,可帮助在集成测试中进行配置检测。

// Same as @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}}

五、开发一个 SpringBoot应用程序

在开始之前,请打开终端并运行以下命令以确保已安装有效版本的 Java 和 Maven:

$ java -version
openjdk version "17.0.4.1" 2022-08-12 LTS
OpenJDK Runtime Environment (build 17.0.4.1+1-LTS)
OpenJDK 64-Bit Server VM (build 17.0.4.1+1-LTS, mixed mode, sharing)
 mvn -v
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: usr/Users/developer/tools/maven/3.8.5
Java version: 17.0.4.1, vendor: BellSoft, runtime: /Users/developer/sdkman/candidates/java/17.0.4.1-librca

1、创建 POM

我们需要从创建一个 Maven 文件开始。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>myproject</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.2</version></parent><!-- Additional lines to be added here... --></project>

2、添加类路径依赖

在此之前,我们可以通过运行以下命令来查看我们当前拥有的内容:spring-boot-starter-web

$ mvn dependency:tree[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT

由于我们正在开发一个 Web 应用程序,因此我们添加一个依赖项

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

3、编写代码

为了完成我们的应用程序,我们需要创建一个 Java 文件。 默认情况下,Maven 从 编译源代码,因此您需要创建该目录结构,然后添加一个名为以包含以下代码的文件:src/main/javasrc/main/java/MyApplication.java

@RestController
@SpringBootApplication
public class MyApplication {@RequestMapping("/")String home() {return "Hello World!";}public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}}

@RestController:相当于@ResponseBody + @Controller,@Controller注解表示后,该类将会被spring管理,@ResponseBody注解标识后,响应数据可以是文本或者JSON数据类型

@RequestMapping:是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上。

六、Tracing

Spring Boot 提供依赖管理和自动配置Micrometer Tracing,这是常用信息监控库 。

Spring Boot 为以下跟踪器提供自动配置:

  • 使用Zipkin或Wavefront的OpenTelemetry

  • OpenZipkin Brave with Zipkin or Wavefront

我们需要一个可用于开始跟踪的示例应用程序。 就我们的目的而言,“入门.html部分中介绍的简单”Hello World!“Web 应用程序就足够了。 我们将使用OpenTelemetry跟踪器与Zipkin作为跟踪后端。

回顾一下,我们的主要应用程序代码如下所示:

@RestController@SpringBootApplicationpublicclassMyApplication{privatestaticfinal Log logger = LogFactory.getLog(MyApplication.class);@RequestMapping("/")String home(){logger.info("home() has been called");return"Hello World!";}publicstaticvoidmain(String[] args){SpringApplication.run(MyApplication.class, args);}}
该方法中添加了一个记录器语句,稍后会很重要。home()

现在我们必须添加以下依赖项:

  • org.springframework.boot:spring-boot-starter-actuator

  • io.micrometer:micrometer-tracing-bridge-otel- 这是将千分尺观测 API 桥接到开放遥测所必需的。

  • io.opentelemetry:opentelemetry-exporter-zipkin- 需要向 Zipkin 报告痕迹。

添加以下应用程序属性:

management.tracing.sampling.probability=1.0

默认情况下,Spring Boot 仅对 10% 的请求进行采样,以防止跟踪后端不堪重负。 此属性将其切换为 100%,以便将每个请求发送到跟踪后端。

为了收集和可视化跟踪,我们需要一个正在运行的跟踪后端。 我们在这里使用 Zipkin 作为我们的跟踪后端。 Zipkin 快速入门指南提供了如何在本地启动 Zipkin 的说明。

Zipkin 运行后,您可以启动应用程序。

七、日志记录

Spring Boot 没有强制性的日志记录依赖项,除了通常由 Spring Framework 模块提供的 Commons Logging API。 要使用 Logback,您需要将其包含在类路径中。 推荐的方法是通过启动器,这完全取决于 . 对于 Web 应用程序,您只需要 ,因为它以传递方式依赖于日志记录启动器。 如果使用 Maven,则以下依赖项会为您添加日志记录:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

Spring Boot 有一个抽象,它试图根据类路径的内容配置日志记录。 如果 Logback 可用,则它是首选。LoggingSystem

如果需要对日志记录进行的唯一更改是设置各种记录器的级别,则可以使用“logging.level”前缀执行此操作,如以下示例所示:application.properties

logging.level.org.springframework.web=debug
logging.level.org.hibernate=error

除了控制台之外,您还可以使用 设置要将日志写入的文件的位置。要配置日志记录系统的更细粒度设置,您需要使用相关支持的本机配置格式。 默认情况下,Spring 引导从系统的默认位置(例如 Logback)选取本机配置,但您可以使用该属性设置配置文件的位置。

1、为日志记录配置回日志

如果需要将自定义应用于 logback,而不是可以使用 实现的自定义项,则需要添加标准 logback 配置文件。 您可以将文件添加到类路径的根目录中,以便进行回查

Spring 引导提供了许多登录配置,这些配置可以在您自己的配置中。 这些包括旨在允许重新应用某些常见的 Spring 引导约定。included

以下文件在 下提供:org/springframework/boot/logging/logback/

  • defaults.xml- 提供转换规则、模式属性和常用记录器配置。

  • console-appender.xml- 使用 .ConsoleAppenderCONSOLE_LOG_PATTERN

  • file-appender.xml- 使用适当的设置添加 和。RollingFileAppenderFILE_LOG_PATTERNROLLING_FILE_NAME_PATTERN

此外,还提供了旧文件以与早期版本的 Spring Boot 兼容。base.xml

典型的自定义文件如下所示:logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration><include resource="org/springframework/boot/logging/logback/defaults.xml"/><include resource="org/springframework/boot/logging/logback/console-appender.xml" /><root level="INFO"><appender-ref ref="CONSOLE" /></root><logger name="org.springframework.web" level="DEBUG"/>
</configuration>

您的登录配置文件还可以利用负责为您创建的系统属性:

  • ${PID}:当前进程 ID。

  • ${LOG_FILE}:是否在引导的外部配置中设置。logging.file.name

  • ${LOG_PATH}:是否在 Boot 的外部配置中设置了(表示日志文件所在的目录)。logging.file.path

  • ${LOG_EXCEPTION_CONVERSION_WORD}:是否在引导的外部配置中设置。logging.exception-conversion-word

  • ${ROLLING_FILE_NAME_PATTERN}:是否在引导的外部配置中设置。logging.pattern.rolling-file-name

Spring Boot 还通过使用自定义 Logback 转换器在控制台上(但不在日志文件中)提供了一些不错的 ANSI 颜色终端输出

2、配置 log4j 用于日志记录

Spring Boot 支持 Log4j 2 进行日志记录配置,如果它位于类路径上。 如果使用启动器来组装依赖项,则必须排除 Logback,然后改为包含 Log4j 2。 如果您不使用启动器,除了 Log4j 2 之外,您还需要(至少)提供。

推荐的路径是通过启动器,即使它需要一些摇晃。 以下示例显示了如何在 Maven 中设置启动器:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

相关文章:

SpringBoot 基础知识汇总

一、环境准备Java&#xff1a;Spring Boot 3.0.2 需要 Java 17&#xff0c;并且与 Java 19 兼容Maven&#xff1a;Apache Maven 3.5 或更高版本兼容二、启动器以下应用程序启动器由 Spring Boot 在该组下提供&#xff1a;org.springframework.boot表 1.Spring 引导应用程序启动…...

centos7下用kvm启动Fedora36 Cloud镜像

环境 os:centos7 Arch: aarch64 安装qemu-kvm yum install qemu-kvm kvm virt-install libvirt systemctl start libvirtd.service创建镜像 下载aarch64架构的Fedora36镜像 wget https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/36/Cloud/aarch64/images/Fedora-Cl…...

修复 K8s SSL/TLS 漏洞(CVE-2016-2183)指南

作者&#xff1a;老 Z&#xff0c;中电信数智科技有限公司山东分公司运维架构师&#xff0c;云原生爱好者&#xff0c;目前专注于云原生运维&#xff0c;云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 测试服务器配置 主机名IPCPU内存系…...

uniapp 引入彩色symbol和 指令权限

uniapp 引入iconfont图标库彩色symbol 1&#xff0c;先去阿里巴巴矢量图标库登录 然后点击下载至本地 2.下载本地&#xff0c;然后解压文件夹 3.打开终端cmd命令窗口 npm安装全局包npm i -g iconfont-tools 4.终端切换到上面解压的文件夹里面&#xff0c;运行iconfont-too…...

【C语言】初识结构体

Yan-英杰 悟已往之不谏 知来者之可追 目录 一、结构体的声明 二、结构体变量的定义和初始化 三、结构体成员的访问 四、结构体传参 一、结构体的声明 1.结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。2.结构的…...

前端将base64图片转换成file文件

1、base64转成file具体代码 // base64图片转file的方法&#xff08;base64图片, 设置生成file的文件名&#xff09;function base64ToFile(base64, fileName) {// 将base64按照 , 进行分割 将前缀 与后续内容分隔开let data base64.split(,);// 利用正则表达式 从前缀中获取图…...

OAK相机跑各种yolo模型的检测帧率和深度帧率

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手…...

存储拆分后,如何解决唯一主键问题?

在单库单表时&#xff0c;业务 ID 可以依赖数据库的自增主键实现&#xff0c;现在我们把存储拆分到了多处&#xff0c;如果还是用数据库的自增主键&#xff0c;就会出现主键重复的情况。 所以我们不得不面对的一个选择&#xff0c;就是ID生成器&#xff0c;使用一个唯一的字符…...

仿射变换学习

affine_trans_&#xff08;iamge,region,xld)&#xff1a;仿射变换-作用到iamge&#xff0c;region、xld等都可以 vector_angle_to_rigid()&#xff1a;得到一个刚性仿射变换矩阵 orientation_region()&#xff1a;得到指定区域的弧度&#xff08;与x轴正方向的弧度&#xff09…...

基于java的爬虫框架webmagic基本使用

简单记录一下java项目实现网页爬取数据的基本使用. 需要引入的依赖 <dependency><groupId>us.codecraft</groupId><artifactId>webmagic-core</artifactId><version>0.7.3</version></dependency><dependency><grou…...

Python每日一练(20230221)

目录 1. 不同路径 II 2. 字符串转换整数 (atoi) 3. 字符串相乘 1. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为“Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中…...

【Linux】vim拒绝服务安全漏洞修复

根据国家信息安全漏洞共享平台于2023年2月19日发布的安全漏洞通知&#xff0c;Linux系统自带的vim编辑器存在两个高危安全漏洞&#xff08;CNVD-2023-09166、CNVD-2023-09647&#xff09;&#xff0c;攻击者可以利用该漏洞发起拒绝服务攻击&#xff0c;并可能运行&#xff08;恶…...

moveit 2源码编译

文章目录前言下载编译过程创建开发环境拉取源代码更新rosdep下载安装moveit 2依赖包编译源码输出结果总结前言 本文用来记录moveit 2从源码编译的全流程。 本机环境&#xff1a; 系统&#xff1a;debian 11 ros版本&#xff1a;ros2 humble 处理器&#xff1a;intel i7 内存&a…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A模块(4)

目录 二、竞赛注意事项 &#xff08;本模块20分&#xff09; 一、项目和任务描述&#xff1a; 二、服务器环境说明 三、具体任务&#xff08;每个任务得分以电子答题卡为准&#xff09; A-1任务一 登录安全加固&#xff08;Windows&#xff09; 1.密码策略 a.更改或创建…...

微服务保护之sentinel熔断器

文章目录 目录 文章目录 前言 一、解决微服务雪崩的问题 二、使用步骤 三、熔断器的使用 3.1 限流规则 3.1.1流控模式 3.1.2流控效果 3.2 隔离和降级 3.2.1 隔离 3.2.2 降级 四、sentinel规则持久化 总结 前言 在基于 SpringCloud 构建的微服务体系中&#xff0c;服务间的调用…...

电动打气泵方案开发--鼎盛合PCBA方案

开车的每一个司机都必须要知道一个事情——定期检查轮胎气压是否正常&#xff0c;因为轮胎胎压不足会导致轮胎过早磨损&#xff0c;从而造成容易发生道路交通事故&#xff0c;并且对汽车的操控性和牵引力带来不良影响&#xff0c;甚至会出现爆胎或汽车失控等极其危险的事故。电…...

第十三届蓝桥杯省赛 C++ A 组 F 题、Java A 组 G题、C组 H 题、Python C 组 I 题——青蛙过河(AC)

目录1.青蛙过河1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路Ac_code1.C2.Java1.青蛙过河 1.题目描述 小青蛙住在一条河边, 它想到河对岸的学校去学习。小青蛙打算经过河里 的石头跳到对岸。 河里的石头排成了一条直线, 小青蛙每次跳跃…...

django项目实战四(django+bootstrap实现增删改查)进阶时间控件

接上一篇《django项目实战三&#xff08;djangobootstrap实现增删改查&#xff09;进阶分页》 知识点&#xff1a; 使用bootstrap-datepicker实现时间控件 一、优化layout.html模版 主要新增2个块 {% block css %}{% endblock %}{% block js %}{% endblock %} {% load static…...

Jetpack之ViewModel

The ViewModel class is a business logic or screen level state holder. 上面是官方给的定义&#xff0c;ViewModel 类是业务逻辑或屏幕级状态持有者。 一、业务逻辑持有者 在此之前&#xff0c;无论是MVC模式&#xff0c;还是MVP模式&#xff0c;在视图层&#xff0c;都会…...

追梦之旅【数据结构篇】——详解C语言动态实现顺序表

详解C语言动态实现顺序表~&#x1f60e;前言&#x1f64c;顺序表概念及结构&#x1f64c;功能函数的具体实现分析&#xff1a;&#x1f64c;尾插函数具体实现&#xff1a;尾删函数具体实现&#xff1a;头插函数具体实现&#xff1a;头删插函数具体实现&#xff1a;任意插函数具…...

N元语言模型 —— 一文讲懂!!!

目录 引言 一. 基本知识 二.参数估计 三.数据平滑 一.加1法 二.减值法/折扣法 ​编辑 1.Good-Turing 估计 ​编辑 2.Back-off (后备/后退)方法 3.绝对减值法 ​编辑4.线性减值法 5.比较 三.删除插值法(Deleted interpolation) 四.模型自适应 引言 本章节讲的…...

Mac 安装git心路历程(心累版)

省流版&#xff1a;直接安装Xcode命令行工具即可&#xff0c;不用安Xcode。 git下载官网 第一部分 上网初步了解后&#xff0c;打算直接安装Binary installer&#xff0c;下载完安装时&#xff0c;苹果还阻止安装&#xff0c;只好在“设置–安全性与隐私”最下面的提示进行安…...

Go 语言中的 make 函数详解

Go 语言中的 make 函数详解 make 是 Go 语言中的一个​​内置函数​​&#xff0c;用于​​初始化切片&#xff08;slice&#xff09;、映射&#xff08;map&#xff09;和通道&#xff08;channel&#xff09;​​这些引用类型。这些类型必须在使用前通过 make 初始化&#x…...

Python Robot Framework【自动化测试框架】简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

【LLM】多智能体系统 Why Do Multi-Agent LLM Systems Fail?

note 构建一个成功的 MAS&#xff0c;不仅仅是提升底层 LLM 的智能那么简单&#xff0c;它更像是在构建一个组织。如果组织结构、沟通协议、权责分配、质量控制流程设计不当&#xff0c;即使每个成员&#xff08;智能体&#xff09;都很“聪明”&#xff0c;整个系统也可能像一…...

clickhouse 和 influxdb 选型

以下是 ClickHouse、InfluxDB 和 HBase 在体系架构、存储引擎、数据类型、性能及场景的详细对比分析: 🏗️ ‌一、体系架构对比‌ ‌维度‌‌ClickHouse‌‌InfluxDB‌‌HBase‌‌设计目标‌大规模OLAP分析,高吞吐复杂查询 时序数据采集与监控,优化时间线管理高吞吐随机…...

RabbitMQ 学习

MQ 的相关概念 什么是 MQ MQ&#xff08;message queue&#xff09;&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是 message 而已&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。…...

【算法设计与分析】实验——汽车加油问题, 删数问题(算法实现:代码,测试用例,结果分析,算法思路分析,总结)

说明&#xff1a;博主是大学生&#xff0c;有一门课是算法设计与分析&#xff0c;这是博主记录课程实验报告的内容&#xff0c;题目是老师给的&#xff0c;其他内容和代码均为原创&#xff0c;可以参考学习&#xff0c;转载和搬运需评论吱声并注明出处哦。 4-1算法实现题 汽车…...

类型别名与类型自动推导

类型别名与类型的自动推导 类型别名 为什么要引入类型别名&#xff1f; 为了给类型赋予特殊含义或便于使用 典型用途 &#xff08;1&#xff09;增强代码可移植性 例如&#xff1a;size_t &#xff08;在不同系统中可能是unsigned int 或 unsigned long&#xff09; 首先是…...

机器学习:集成学习概念和分类、随机森林、Adaboost、GBDT

本文目录&#xff1a; 一、集成学习概念**核心思想&#xff1a;** 二、集成学习分类&#xff08;一&#xff09;Bagging集成&#xff08;二&#xff09;Boosting集成&#xff08;三&#xff09;两种集成方法对比 三、随机森林&#xff08;一&#xff09;构造过程&#xff08;二…...