springboot3-web-questions-分析

news2024/9/23 23:26:06

系列文章目录


文章目录

  • 目录

    系列文章目录

    文章目录

    前言

    一、问题案例

    1、maven项目compile时候出现告警warn

    2、java文件打包然后在命令行中运行java会找不到主类

    3、程序找不到数据库驱动和配置实例

    4、springboot和mybatis-plus版本不兼容导致

    5、springboot项目启动的解释

    6、jdbc驱动过时

    7、springboot项目启动时候提示:Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

    总结


前言


一、问题案例

1、maven项目compile时候出现告警warn

告警提示:

Parameter 'compilerVersion' (user property 'maven.compiler.compilerVersion') is deprecated: This parameter is no longer evaluated by the underlying compilers, instead the actual version of the javac binary is automatically retrieved. [INFO] Recompiling the module because of changed source code.

解决:

这个警告消息来自 Maven 编译器插件,提示参数 compilerVersion 已被弃用,并且不再由底层编译器评估。相反,Javac 二进制文件的实际版本会自动检索。

compilerVersion 参数已被弃用,这意味着即使你在 Maven 配置中指定了这个参数,它也不会影响编译器的行为。Maven 编译器插件会自动确定并使用已安装的 Java 编译器版本。

解决方法一:

如果你在 pom.xml 文件中指定了 compilerVersion 参数,可以安全地移除它。相反,应该确保你正确配置了 sourcetarget 参数来指定编译的 Java 版本。

解决方法二:

添加这两句解决问题是因为它们明确地指定了 Maven 编译器插件的配置。具体来说:

```xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version> <!-- 确保使用最新版本 -->
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
    </configuration>
</plugin>
```

1. **`maven-compiler-plugin` 的配置**:- `maven-compiler-plugin` 是 Maven 用于编译 Java 源代码的插件。它负责将源代码编译成字节码。
   - 指定插件的版本(例如 `3.8.1`)确保你使用的是最新的稳定版本,这样可以避免已知的错误或不兼容问题。

2. **`<source>` 和 `<target>` 参数**:
   - 这两个参数用来指定 Java 语言的版本。
   - `<source>` 定义了编译源代码时使用的 Java 版本。
   - `<target>` 定义了生成字节码时的目标 Java 版本。
   - 例如,如果你的项目使用 Java 17,`<source>` 和 `<target>` 都应该设置为 `17`。
   - 这些设置帮助 Maven 编译器插件确定要使用的 Java 语言特性和字节码格式。

### 解决问题的原因

- **明确的编译器设置**: 当你指定 `<source>` 和 `<target>` 版本时,Maven 编译器插件知道你想要使用哪种 Java 版本。这消除了插件猜测或自动检测的必要性,并且避免了可能的警告或错误。
- **兼容性和稳定性**: 使用明确指定的版本(例如 `3.8.1`)可以确保你利用的是经过验证的版本,而不是不稳定或过时的版本。这也帮助避免了由于使用不同的插件版本而引起的不兼容问题。
- **清晰的项目配置**: 通过明确的配置,其他开发者或构建系统在构建你的项目时不需要做额外的配置调整。项目的构建过程变得更加可预测和稳定。通过添加这些配置,你明确告诉 Maven 如何编译你的 Java 代码。这不仅可以解决特定的警告或错误,还可以确保项目在不同环境和设置下的一致性和稳定性。

2、java文件打包然后在命令行中运行java会找不到主类

原因:

要确保 Java 运行时能找到你的主类,你需要在打包时正确地指定主类。可以通过两种方式做到这一点

解决:

### 1. **指定主类**

要确保 Java 运行时能找到你的主类,你需要在打包时正确地指定主类。可以通过两种方式做到这一点:

#### 在 `pom.xml` 中指定主类

如果你使用 Maven 构建项目,可以在 `pom.xml` 中通过 `maven-jar-plugin` 指定主类:

```xml
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.example.MainClass</mainClass> <!-- 替换为你的主类 -->
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
```

- `<mainClass>` 元素指定了你的主类的完全限定名(包括包名)。

#### 手动创建 `MANIFEST.MF` 文件

在构建过程中,或手动创建一个包含以下内容的 `MANIFEST.MF` 文件:

```
Manifest-Version: 1.0
Main-Class: com.example.MainClass
```

然后将此文件包含在你的 JAR 文件中。确保 `com.example.MainClass` 是你的主类的全限定名。

### 2. **打包 JAR 文件**

确保你正确地打包了 JAR 文件并且所有的类文件和资源都包含在内。例如,使用 Maven,可以运行以下命令:

```bash
mvn clean package
```

这个命令会生成一个包含指定主类的可执行 JAR 文件。

### 3. **运行 JAR 文件**

一旦你有了正确的 JAR 文件,可以使用以下命令运行它:

```bash
java -jar your-jar-file.jar
```

确保 `your-jar-file.jar` 是你生成的 JAR 文件的名称。

### 4. **检查包名和类路径**

如果你仍然遇到问题,检查以下几点:

- **主类的包名**: 确保主类的包名在代码和 JAR 文件中是一致的。
- **类路径**: 如果你的应用程序依赖外部库,请确保它们在运行时的类路径中。如果它们没有打包在 JAR 文件中,你可能需要通过 `-classpath` 或 `-cp` 选项指定它们。

例如:

```bash
java -cp your-jar-file.jar:lib/* com.example.MainClass
```

这会在类路径中包括 `your-jar-file.jar` 和 `lib` 目录中的所有 JAR 文件。

通过这些步骤,你应该能够正确地指定和找到主类,并成功运行你的 Java 应用程序。

3、程序找不到数据库驱动和配置实例

问题和解决:

Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class

这个错误信息 `Failed to determine a suitable driver class` 表示 Spring Boot 在尝试创建数据源时,无法确定合适的数据库驱动类。这通常是由于以下几个原因之一:

### 1. **缺少数据库驱动依赖**

确保你的 `pom.xml` 中已经包含了相应的数据库驱动程序。例如,如果你使用 MySQL 数据库,应该包含以下依赖:

```xml
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.32</version> <!-- 使用你需要的版本 -->
</dependency>
```

### 2. **未配置正确的数据库连接属性**

检查 `application.properties` 或 `application.yml` 中的数据库连接配置,确保已提供正确的 JDBC URL、用户名和密码。对于 MySQL,配置应如下所示:

```properties
spring.datasource.url=jdbc:mysql://localhost:3306/yourdatabase
spring.datasource.username=yourusername
spring.datasource.password=yourpassword
```

或在 `application.yml` 中:

```yaml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yourdatabase
    username: yourusername
    password: yourpassword
```

确保 `jdbc:mysql://` 是你的数据库 URL 的前缀。

### 3. **不正确的驱动类名称**

尽管 Spring Boot 通常会自动检测合适的驱动类,但在某些情况下,你可能需要显式地指定驱动类。你可以在 `application.properties` 或 `application.yml` 中设置:

```properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```

或在 `application.yml` 中:

```yaml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yourdatabase?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
    username: yourusername
    password: yourpassword
    driver-class-name: com.mysql.cj.jdbc.Driver
    hikari:
      maximum-pool-size: 10
      minimum-idle: 5
      idle-timeout: 30000
      connection-timeout: 30000
      max-lifetime: 1800000

```

### 4. **依赖版本问题**

有时,不兼容或过时的库版本也可能导致问题。确保所有依赖项,包括 Spring Boot 和 MySQL 驱动程序,都是兼容的最新版本。

### 5. **Spring Boot Starter 使用**

如果你使用 Spring Boot 的 starter 来简化配置,确保使用的是正确的 starter。例如,使用 `spring-boot-starter-data-jpa` 时,通常会自动包括适当的数据库依赖,但如果缺少 MySQL 依赖,则需要手动添加。

### 6. **多数据源配置**

如果你在项目中配置了多个数据源,确保每个数据源都有正确的配置,并且 Spring 能够明确识别哪个数据源应该使用哪个驱动。

4、springboot和mybatis-plus版本不兼容导致

ddlApplicationRunner' 的 bean 被期望是 org.springframework.boot.Runner 类型

问题和解决:

Bean named 'ddlApplicationRunner' is expected to be of type 'org.springframework.boot. Runner' but was actually of type 'org.springframework.beans.factory.support.NullBean'
at org.springframework.beans.factory.support.AbstractBeanFactory.adaptBeanInstance(AbstractBeanFactory.java:410) ~[spring-beans-6.1.3.jar:6.1.3]

Bean named 'ddlApplicationRunner' is expected to be of type 'org.springframework.boot. Runner' but was actually of type 'org.springframework.beans.factory.support.NullBean'
at org.springframework.beans.factory.support.AbstractBeanFactory.adaptBeanInstance(AbstractBeanFactory.java:410) ~[spring-beans-6.1.3.jar:6.1.3]

5、springboot项目启动的解释

问题和解决:

从日志中可以看出,你的 Spring Boot 应用程序启动时发生了一些重要事件。以下是对日志的详细解释:

### 日志解释

1. **启动信息**:
   ```plaintext
   2024-07-24T14:17:51.254+08:00  INFO 20596 --- [           main] o.l.neg_platform.NegPlatformApplication  : Starting NegPlatformApplication using Java 17.0.8 with PID 20596 (D:\WorkPace\JavaWorkpace\neg_platform\target\classes started by 86195 in D:\WorkPace\JavaWorkpace\neg_platform)
   ```
   - 应用程序 `NegPlatformApplication` 正在使用 Java 17.0.8 版本启动,进程 ID 是 20596。
   - 应用程序的运行目录在 `D:\WorkPace\JavaWorkpace\neg_platform`。

2. **没有设置活动的 Spring Profile**:
   ```plaintext
   2024-07-24T14:17:51.263+08:00  INFO 20596 --- [           main] o.l.neg_platform.NegPlatformApplication  : No active profile set, falling back to 1 default profile: "default"
   ```
   - 没有设置活动的 Spring Profile,因此使用了默认的 "default" 配置。

3. **MyBatis Mapper 未找到**:
   ```plaintext
   2024-07-24T14:17:51.892+08:00  WARN 20596 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : No MyBatis mapper was found in '[org.louis.neg_platform]' package. Please check your configuration.
   ```
   - 这是一个警告信息,表示在指定的包 `[org.louis.neg_platform]` 中没有找到 MyBatis Mapper 接口。
   - 这通常意味着你可能没有正确配置 MyBatis 的扫描路径,或是你的 Mapper 接口没有放置在正确的位置,或是没有添加必要的注解,例如 `@Mapper`。

4. **Tomcat Web 服务器启动**:
   ```plaintext
   2024-07-24T14:17:52.218+08:00  INFO 20596 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
   ```
   - 嵌入式的 Tomcat Web 服务器初始化在端口 8080 上。

5. **启动 Tomcat 服务**:
   ```plaintext
   2024-07-24T14:17:52.226+08:00  INFO 20596 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
   2024-07-24T14:17:52.226+08:00  INFO 20596 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.26]
   ```
   - Tomcat 服务开始启动,使用的 Servlet 引擎版本是 Apache Tomcat 10.1.26。

6. **Spring 上下文初始化**:
   ```plaintext
   2024-07-24T14:17:52.267+08:00  INFO 20596 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
   2024-07-24T14:17:52.268+08:00  INFO 20596 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 946 ms
   ```
   - Spring 的嵌入式 WebApplicationContext 初始化完成。

7. **MyBatis-Plus 版本信息**:
   ```plaintext
    _ _   |_  _ _|_. ___ _ |    _ 
   | | |\/|_)(_| | |_\  |_)||_|_\ 
        /               |         
                           3.5.7 
   ```
   - 这是 MyBatis-Plus 的启动标志,显示使用的版本是 3.5.7。

8. **应用程序启动完成**:
   ```plaintext
   2024-07-24T14:17:52.936+08:00  INFO 20596 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
   2024-07-24T14:17:52.942+08:00  INFO 20596 --- [           main] o.l.neg_platform.NegPlatformApplication  : Started NegPlatformApplication in 2.14 seconds (process running for 2.803)
   ```
   - Tomcat 成功启动并监听端口 8080,应用程序 `NegPlatformApplication` 在大约 2.14 秒内启动完成。

### 需要关注的部分

1. **MyBatis Mapper 未找到**:
   - 这是一个需要注意的问题。你需要确保正确配置了 MyBatis Mapper 扫描路径。例如,在 `application.yml` 或 `application.properties` 中设置 `mybatis.mapper-locations`,或者在启动类上使用 `@MapperScan` 注解来指定扫描路径。

   ```java
   @SpringBootApplication
   @MapperScan("com.example.mapper")
   public class MyApplication {
       public static void main(String[] args) {
           SpringApplication.run(MyApplication.class, args);
       }
   }
   ```

确保这些问题得到解决后,应用程序才能正常运行并正确连接到数据库。

6、jdbc驱动过时

问题:

MySQL JDBC Driver 是 Java 应用程序用来与 MySQL 数据库进行交互的驱动程序。它实现了 JDBC(Java Database Connectivity)API,这是 Java 标准的一部分,用于提供数据库访问的统一接口。以下是 MySQL JDBC Driver 的几个主要作用:

1. **数据库连接**:
   JDBC Driver 允许 Java 应用程序建立到 MySQL 数据库的连接。这是数据库操作的第一步。

2. **SQL 语句执行**:
   通过 JDBC Driver,应用程序可以执行 SQL 语句,包括查询(SELECT)、更新(UPDATE)、插入(INSERT)和删除(DELETE)操作。

3. **事务管理**:
   JDBC Driver 支持事务管理,确保数据的完整性和一致性。它允许应用程序提交或回滚事务。

4. **数据检索和更新**:
   JDBC Driver 提供了从数据库检索数据和向数据库发送数据的机制。它可以使用 `ResultSet` 对象来处理查询结果。

5. **预处理语句**:
   JDBC Driver 支持预处理语句(PreparedStatement),这可以提高性能并防止 SQL 注入攻击。

6. **批量操作**:
   JDBC Driver 允许执行批量操作,这对于大量数据的插入或更新非常有用。

7. **元数据访问**:
   应用程序可以使用 JDBC Driver 访问数据库的元数据,例如表结构、列信息等。

8. **连接池支持**:
   JDBC Driver 可以与连接池(如 HikariCP、Apache DBCP 或 C3P0)集成,以提高数据库连接的效率和性能。

9. **安全性**:
   JDBC Driver 支持加密连接(如 SSL),确保数据传输的安全性。

10. **国际化和本地化**:
    JDBC Driver 支持多种字符集和语言,以适应全球化应用程序的需求。

总之,MySQL JDBC Driver 是 Java 应用程序与 MySQL 数据库进行通信的桥梁,提供了执行数据库操作所需的所有功能。

你的 `pom.xml` 中的 `mysql-connector-j` 依赖项已经指定了较新的版本 8.2.0,这是一个较新的 MySQL JDBC 驱动版本。在这个版本中,驱动类名 `com.mysql.jdbc.Driver` 已经被 `com.mysql.cj.jdbc.Driver` 替代。因此,通常不需要手动指定驱动类名,因为驱动会自动注册。

### 需要做的事情:

1. **检查驱动类**:
   - 如果你的代码中有类似 `Class.forName("com.mysql.jdbc.Driver")` 的行,你应该将其更新为 `Class.forName("com.mysql.cj.jdbc.Driver")`。但请注意,通常现代驱动不再需要手动加载驱动类,因为驱动会自动注册。

2. **更新 JDBC 连接字符串**:
   - 确保你的 JDBC 连接字符串是符合最新标准的。通常连接字符串格式如下:
     ```properties
     jdbc:mysql://hostname:port/dbname?useSSL=false&serverTimezone=UTC
     ```
   - 注意参数的正确性,例如 `useSSL` 和 `serverTimezone`,这些参数可能在不同版本中有变化。

3. **确保配置正确**:
   - 确保你没有遗留旧的驱动或配置,尽量清理掉不必要的旧依赖和设置。

### 示例 `pom.xml` 更新:
如果你已经使用了最新版本的驱动,`pom.xml` 文件中的依赖部分不需要更改。你的依赖配置看起来已经是正确的:

```xml
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.2.0</version>
    <scope>runtime</scope>
</dependency>
```

### 总结:
- 你的 `pom.xml` 中的依赖配置已经是使用最新版本的驱动。
- 检查和更新代码中是否还有手动加载驱动类的旧代码。
- 确保你的 JDBC 连接字符串和其他相关配置是适用于新版驱动的。

通过这些步骤,你可以确保你的项目兼容性和使用的是最新的驱动特性。

7、springboot项目启动时候提示:Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

问题和解决:

大概意思就是jvm的类加载器的执行顺序,有些第三方的包加载顺序并没有添加在bootstarp classloader中,所以提示。

当在IDEA中连接Redis时出现"Java HotSpot™ 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended"错误,通常是因为类加载器(ClassLoader)的共享机制引发的警告。

Java的类加载机制涉及到Bootstrap ClassLoader、Extension ClassLoader和Application ClassLoader。Bootstrap ClassLoader负责加载核心类库,Extension ClassLoader负责加载Java扩展库,而Application ClassLoader负责加载应用程序的类。

当IDEA启动时,IDEA会改变类加载器的加载方式,在应用程序启动时将一些核心类库路径添加到BootStrap ClassLoader的搜索路径中。这样,当应用程序执行时,某些类库会先由BootStrap ClassLoader加载,然后再由Application ClassLoader加载。

然而,由于Redis客户端库通常不是放在BootStrap ClassLoader的搜索路径下的,所以在加载Redis客户端库时,会出现上述警告。

虽然出现警告,但通常不会影响应用程序的正常运行。你可以忽略该警告,或者通过设置VM选项来关闭该警告。

如果你希望关闭警告,可以尝试以下方法:

在IDEA的启动选项中,添加以下JVM参数:
-Dsun.misc.URLClassPath.disableJarChecking=true

在IDEA的启动选项中,添加以下JVM参数:
-XX:-ShareBootClassLoader

8、Druid监控页面无法打开(404)

问题解决:

配置了druid的yml和导入了依赖项,但是项目启动时候访问http://127.0.0.1:8080/druid/api.html

会页面打不开报404,主要原因在于springboot3版本和druid的版本不一致,所以导致了项目启动时候druid初始化,然后就closed了

这样配置就能访问druid的监控页面了


总结


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

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

相关文章

docker 续 常用命令

ubuntu里的仓库文件使用不了的解决方法&#xff1a; 1.进入仓库文件的目录 cd /etc/apt/sources.list.d/ 2.删除 archive开头的文件 sudo rm -rf archive* 3.重新下载仓库文件 sudo add-apt-repository "deb [archamd64] https://mirrors.ustc.edu.cn/docker-ce/lin…

学术研讨 | 基于区块链的隐私计算与数据可信流通研讨会顺利召开

近日&#xff0c;由国家区块链技术创新中心组织的“基于区块链的隐私计算与数据可信流通研讨会”顺利召开&#xff0c;会议邀请了来自全国高校和科研院所的相关领域专家&#xff0c;围绕基于区块链与隐私计算技术的应用需求、研究现状、发展趋势、重点研究方向与研究进展等内容…

【相机与图像】1. 相机模型的介绍:内参、外参、畸变参数

想着整理下相机模型&#xff08;内容上参考 slam十四讲&#xff09;、相机的内外参标定。方便自己的使用和回顾。 不过&#xff0c;内外参标定啥时候记录随缘 -_- 概述 【构建相机模型】 相机将三位世界中的坐标点&#xff08;单位为米&#xff09;映射到二维图像平面&#xff…

【LeetCode】71.简化路径

1. 题目 2. 分析 3. 代码 我写了一版很复杂的代码&#xff1a; class Solution:def simplifyPath(self, path: str) -> str:operator [] # 操作符的栈dir_name [] # 文件名的栈idx 0cur_dir_name ""while(idx < len(path)):if path[idx] /:operator.ap…

MT6775(Helio P70)处理器规格参数_MTK联发科平台方案

联发科MT6775(Helio P70)采用台积电12nm工艺制程节省功耗达 15%&#xff0c;搭载了四颗Arm Cortex-A73 2.1GHz和四颗ArmCortex-A53 2.0GHz的八核处理器。 GPU为ARM Mali-G72 MP3&#xff0c;运行时频率高达900MHz&#xff0c;相较于上一代产品HelioP60&#xff0c;效能提升了1…

搜索与下载Stable Diffusion 模型

我只是一个刚开始学习SD没多久小白&#xff0c;拿到别人的工作流想要运行时&#xff0c;很多时候还要下载对应的模型才能正常运行&#xff0c;虽然也可以通过comfyui-manager下载&#xff0c;不过有时候好像会下载失败&#xff0c;而单独下载所需模型&#xff0c;我自己试过&am…

解析西门子PLC的String和WString

西门子PLC有两种字符串类型&#xff0c;String与WString String 用于存放英文数字标点符号等ASCII字符&#xff0c;每个字符占用一个字节 WString宽字符串用于存放中文、英文、数字等Unicode字符&#xff0c;每个字符占用两个字节 之前我搞过一篇解析String的 关于使用TCP-…

SparkSql oom原因以及参数调优+数据倾斜解决方案

1、Spark历史版本对比 spark1 vs spark2 vs spark3 1、spark1引入内存计算的理念&#xff0c;解决中间结果落盘导致的效率低下。在理想状况下性能可达到MR的100倍。虽然提高了一定的计算效率&#xff0c;但也带来了大量的内存管理问题&#xff0c;典型的如内存oom问题频发。…

第124天:内网安全-代理 Sockets协议路由不出网后渗透通讯CS-MSF 控制上线

目录 思维导图 环境配置 案例一&#xff1a;网络通讯&控制上线--CS-路由添加&节点建立&协议生成&正反连接 案例二&#xff1a;网络通讯&控制上线--MSF-路由添加&节点建立&协议生成&正反连接 思维导图 环境配置 这里由于系统内存问题我只设…

79页PDF免费下载 | 全域数字化转型评估模型研究报告

一、前言&#xff1a; 随着数字技术的飞速发展&#xff0c;零售行业正站在转型的十字路口。如何在变革中找到方向&#xff0c;如何通过数字化转型提升企业竞争力&#xff0c;已成为每个零售企业必须面对的课题。腾讯智慧零售与伏羲智库深度合作&#xff0c;推出《2024年全域数…

【Python selenium过极验滑块】用自动化selenium 操作GEETEST极验滑块,简单粗暴

文章日期&#xff1a;2024.07.24 使用工具&#xff1a;Python 文章类型&#xff1a;自动化过极验滑块 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法&…

使用FileZilla Cilent快速让手机与电脑进行文件互传(无需生态)

目录 前言使用 FileZilla笔者的话 前言 当设备多的时候文件的传输就成了一种问题。 就比如说我想将手机上的文件传到电脑里面&#xff0c;因为我使用的电脑跟我的手机不是一个生态的&#xff0c;它们唯一的联系或许就是连接到了统一 WIFI 下&#xff0c;也就是说它们在同一个…

Redis与MySQL的数据一致性问题

目录 一、策略模式 1、旁路缓存模式&#xff08;Cache Aside Pattern&#xff09; 2、读写穿透&#xff08;Read-Through/Write-Through&#xff09; 3、异步缓存写入&#xff08;Write Behind&#xff09; 二、一致性解决方案 1、缓存延迟双删 2、删除重试机制 3、读取…

【概率论】-2-概率论公理(Axioms of Probability)

上一篇文章我们学习了基本的概率论内容-排列组合&#xff0c;本次我们学习概率论公理的内容&#xff0c;正式开始计算概率&#xff0c;在开始前我们需要学习一些基本概念。 目录 一.样本空间和事件 1.样本空间 2.事件 3.交并补 二、概率公理 1.基本公理 2.对称差 2.布尔…

Mysql中(基于GTID方式)实现主从复制,单主复制详细教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

Android Studio 一键删除 Recent Projects信息的方法

Android Studio打开项目多了就一堆最近项目的记录&#xff0c;在IDE里面只能一个个手动删除。 File - Recent Projects 解决方案&#xff1a;修改配置文件 Note&#xff1a;方法不唯一。 Android Studio 存储了一个包含最近打开项目信息的配置文件。通过手动编辑或删除recentP…

代码随想录算法训练营day7 | 454.四数相加II、383.赎金信、15.三数之和、18.四数之和

文章目录 454.四数相加II思路 383.赎金信思路 15.三数之和思路剪枝去重 18.四数之和思路剪枝去重复习&#xff1a;C中的类型转换方法 总结 今天是哈希表专题的第二天 废话不多说&#xff0c;直接上题目 454.四数相加II 建议&#xff1a;本题是 使用map 巧妙解决的问题&#x…

Pytorch使用教学1-Tensor的创建

0 导读 在我们不知道什么是深度学习计算框架时&#xff0c;我们可以把PyTorch看做是Python的第三方库&#xff0c;在PyTorch中定义了适用于深度学习的张量Tensor&#xff0c;以及张量的各类计算。就相当于NumPy中定义的Array和对应的科学计算方法&#xff0c;正是这些基本数据…

JVM系列(三) -类加载器及双亲委派模型介绍

在之前的文章中&#xff0c;介绍了类的加载过程中&#xff0c;我们有提到在加载阶段&#xff0c;通过一个类的全限定名来获取此类的二进制字节流操作&#xff0c;其实类加载器就是用来实现这个操作的。 在虚拟机中&#xff0c;任何一个类&#xff0c;都需要由加载它的类加载器…

【ffmpeg命令入门】添加水印

文章目录 前言什么是水印&#xff1f;为什么要添加水印&#xff1f;ffmpeg添加水印添加图片水印添加文字水印基本使用方法drawtext的参数 总结 前言 在视频制作和编辑的过程中&#xff0c;添加水印是一个常见且重要的步骤。水印不仅可以保护版权&#xff0c;还能用于品牌宣传和…