基于vscode创建SpringBoot项目,连接postgresql数据库

news2024/11/16 15:52:01

1、Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客

2、Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目_水w的博客-CSDN博客

3、基于vscode开发vue项目的详细步骤教程_水w的博客-CSDN博客

4、基于vscode开发vue项目的详细步骤教程 2 第三方图标库FontAwesome_水w的博客-CSDN博客

目录

一、创建一个SpringBoot工程:通过IDEA的SpringInitializr创建

二、安装并创建PostgreSQL数据库

1 安装下载PostgreSQL

2 创建数据库,建表,插入数据

三、配置新创建的SpringBoot工程

0 启动项目,出现Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

1 编写application.properties,启动项目

解决报错:java: 错误: 无效的源发行版:17

解决报错:新建springboot项目时包导不进来org.springframework.boot:spring-boot-starter-parent:pom:2.7.10-SNAPSHOT failed to transfer from http://maven.aliyun.com/nexus/content/groups/public/ during a previous attempt.

四、Mybatis Generator工具

1、引入依赖

2、配置generator-config.xml生成规则

3、自动生成器

解决报错:不支援 10 验证类型。请核对您已经组态 pg_hba.conf 文件包含客户端的IP位址或网路区段,以及驱动程序所支援的验证架构模式已被支援。

4、测试

 问题:为什么@Autowired 和private UserDOMapper userDOMapper有错但还能执行


一、创建一个SpringBoot工程:通过IDEA的SpringInitializr创建

左上角 File-New-Project-Spring Initializr,名称啥的自己设一下

Next->选择需要的依赖包,此处暂时是选择了Spring Web相关、mybatis相关以及postgresql相关包。

 

创建之后,项目建成之后目录结构是这样的:

这里会有一个叫xxxApplication的启动类,然后pom.xml里会有刚刚设置过的相关依赖包,不需要自己再引入,同时resources下会有一个application.properties,此时它是空的。

到这里一个SpringBoot项目就这么简单地创建好了,非常方便。

当然现在还是不能启动的,这个后面再说。

二、安装并创建PostgreSQL数据库

既然跟MySQL一样,同为关系型数据库,那么什么时候用MySQL,什么时候用PostgreSQL自然是我们需要去了解的。所以下面简单介绍一下,PostgreSQL相比于MySQL来说,都有哪些优势,如果你有这些需求,那么选择PostgreSQL就优于MySQL,反之则还是选择MySQL更佳:

  • 支持存储一些特殊的数据类型,比如:array、json、jsonb
  • 对地理信息的存储与处理有更好的支持,所以它可以成为一个空间数据库,更好的管理数据测量和几何拓扑分析
  • 可以快速构建REST API,通过PostgREST可以方便的为任何PostgreSQL数据库提供RESTful API的服务
  • 支持树状结构,可以更方便的处理具备此类特性的数据存储
  • 外部数据源支持,可以把MySQL、Oracle、CSV、Hadoop等当成自己数据库中的表来进行查询
  • 对索引的支持更强,PostgreSQL支持 B-树、哈希、R-树和 Gist 索引。而MySQL取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。
  • 事务隔离更好,MySQL 的事务隔离级别repeatable read并不能阻止常见的并发更新,得加锁才可以,但悲观锁会影响性能,手动实现乐观锁又复杂。而 PostgreSQL 的列里有隐藏的乐观锁 version 字段,默认的 repeatable read 级别就能保证并发更新的正确性,并且又有乐观锁的性能。
  • 时间精度更高,可以精确到秒以下
  • 字符支持更好,MySQL里需要utf8mb4才能显示emoji,PostgreSQL没这个坑
  • 存储方式支持更大的数据量,PostgreSQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。
  • 序列支持更好,MySQL不支持多个表从同一个序列中取id,而PostgreSQL可以
  • 增加列更简单,MySQL表增加列,基本上是重建表和索引,会花很长时间。PostgreSQL表增加列,只是在数据字典中增加表定义,不会重建表。

1 安装下载PostgreSQL

如果有需要,请跳转到Windows下载安装 PostgreSQL和PostGIS工具,并解决The pgAdmin 4 server could not be contacted:_postgis下载安装_水w的博客-CSDN博客

安装postgresql后,使用自带的pgAdmin 4 访问数据库。 

2 创建数据库,建表,插入数据

(1)在开始菜单中找到pgAdmin 4,打开pgAdmin,需要输入密码【之前安装时设置的密码】,

然后,创建一个新的数据库【test-demo】,其中test-demo是数据库名,在Tables处右键-create-table,在弹出来的框里填写表名然后增加column的name和datatype就可以了。

注意:PostgreSQL本身大小写不敏感,但是在这里【非常不推荐】使用大写字母。首先带有大写字母的表的新建和查询时表名都必须带双引号,不然会报【error】postgresql relation does not exist。

  • 可以SELECT * FROM "MyUser",但是不可以SELECT * FROM MyUser
  • 如果仅仅是这样也还是没有问题的,但是如果有大写字母,在后面使用Mybatis Generator生成DO类的时候会报错:Table configuration with catalog null, schema public, and table xxx did not resolve to any tables.就是因为有大写字母引起的。

在这里我新建了一张叫【my_user】的表,两列为username和password,数据类型都为text,并设置username为主键。

(2)这里我使用的是Navicat链接postgresql数据库,输入密码开始连接,

然后,点击“新建查询”,进入之后,输入代码,在【my_user】的表中插入了一条数据,

INSERT INTO "my_user"
VALUES('alice','123456')

 

三、配置新创建的SpringBoot工程

0 启动项目,出现Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

(1) 修改pom.xml文件,设置maven检测的时候“跳过测试”,

<build>
  <plugins>
<!-- maven 打包时跳过测试 -->
   <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
       </plugins>
   <build>    

(2)然后点击右上角的绿色箭头,启动项目,

项目刚刚创建好的时候是不能运行的,运行会报错:Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

原因这个错误就是由于没有编写application.properties,找不到数据库的URL

 

1 编写application.properties,启动项目

(1)配置如下,其中Tomcat端口也可以不改,那就是8080,我是为了防止端口冲突,就随便改了一个。

  • url在数据为postgresql时是jdbc:postgresql://localhost:5432/[数据库名]
  • 后面是用户名和密码,我直接postgres登录的。
#更改Tomcat端口
server.port=8087
spring.datasource.url=jdbc:postgresql://localhost:5432/test-demo
spring.datasource.username=postgres
spring.datasource.password=123456

这个时候已经可以成功启动项目了,但是由于啥都还没写,所以访问localhost:8087(注意自己的端口号!)时,web页面上显示的会是Whitelabel Error Page。

解决报错:java: 错误: 无效的源发行版:17

场景复现:

原因:出现无效的源发行版 就是jdk版本环境不一致造成的。

解决方法

(1)先查看运行环境,确保 Project SDK 和 Project language level 版本一致 (我用的是jdk8版本)

(2)如果还没有解决 可以查看 Modules,确保版本一致(我的是1.8)

(2)还可以在Settings里面查看 java Compiler 里面的jdk版本是否一致(我的是1.8)

然后,发现问题了,这儿的版本不一致。

(4)springboot版本的问题 :springboot3.0 需要jdk17支持,如果没有安装jdk17 只需把springboot版本降低即可。

(5)所以我的解决方法是重新新建项目,

解决报错:新建springboot项目时包导不进来org.springframework.boot:spring-boot-starter-parent:pom:2.7.10-SNAPSHOT failed to transfer from http://maven.aliyun.com/nexus/content/groups/public/ during a previous attempt.

场景复现:IDEA导入maven项目后,下载jar包的时候,控制台报错,报错信息如下,

原因:大致是IDEA中的maven编译执行的时候,jar包导不进来。

解决方法

(1)在执行maven命令时忽略证书检查,

  • 在新建maven工程时,会自执行maven的各种命令
  • 在此处设置忽略证书检查
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

(2)在maven中央仓库(Central Repository:)中寻找,

(3)查看maven下载包的路径,

 (4)我之前创建项目的时候,选择的是版本,于是将springboot的版本改成2.1.7。

修改为2.7.7之后,重新maven配置,

修改并且load maven changes完成之后pom.xml文件可能还会爆红,这时候需要重启idea,发现成功了。

 

总结:如果maven中央仓库没有jar包,即使更换任意镜像,设置安全校验都不好使,可以现在maven中央仓库看是否有所缺的jar包

(2)我们对创建项目的时候生成对应的TestDemoApplication 文件稍微做一点修改,

原始的TestDemoApplication 文件如下:

加入注释@RestController,以及根目录下的方法home,

package com.example.testdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

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

}

重新启动后再次进入就可以看到Hello World了。

 

四、Mybatis Generator工具

接下来需要集成持久层框架,也就是跟数据库打交道的这一层,通常持久层框架有两个:Mybatis和Hibernate, 其中Mybatis是半自动的,需要我们自己写sql,而Hibernate是全自动的,不需要咱们写sql,我记得当年ssh框架盛行时,学这玩意可费劲了,这里我们选择Mybatis。

Mybatis generator工具可以由数据库表自动生成相应的DO类、Dao类和Mapper文件。

作为一个基于 MyBatis 的独立工具,MyBatis Generator 能够通过简单的配置去帮我们生成数据表所对应的 PO、DAO、XML 等文件,减去我们手动去生成这些文件的时间,有效提高开发效率。MyBatis Generator 运行方式多样,主要可以通过以下几种方式来运行:

  1. 命令行
  2. Ant
  3. Maven
  4. Java
  5. Eclipse

1、引入依赖

既然要使用 MyBatis Generator,那么肯定我们的项目中已经配置了数据库和 MyBatis 的相关依赖,如果还没有配置,那么可以在 pom.xml 文件中进行配置,

打开原有自动生成的pom.xml,在<plugins>标签下添加新的<plugin>,添加完之后的xml文件:

<!-- mybatis generator 自动生成代码插件 -->
<plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.5</version>
        <dependencies>
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.5</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>9.4-1201-jdbc4</version>
            </dependency>
        </dependencies>
        <executions>
            <execution>
                <id>mybatis generator</id>
                <phase>package</phase>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
        <configuration><!-- 允许移动生成的文件 -->
            <verbose>true</verbose>
            <configurationFile>src/main/resources/mybatis-generator.xml</configurationFile>
        </configuration>
    </plugin>

 

完成上述步骤后,我们只是完成了 MyBatis Generator 的引入工作,要想让它正常工作,我们还需要对它进行配置,

2、配置generator-config.xml生成规则

其中代码生成的规则是依赖于这么一个xml文件:

 

所以咱们在这个指定src/main/resources的目录中新建这么一个文件:

 其内容这里是一个模板代码,如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">

        <!-- 自动检查关键字,为关键字增加反引号 -->
        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!--覆盖生成XML文件-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
        <!-- 生成的实体类添加toString()方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

        <!-- 不生成注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost/wiki?serverTimezone=Asia/Shanghai"
                        userId="root"
                        password="你的密码">
        </jdbcConnection>

        <!-- domain类的位置 -->
        <javaModelGenerator targetProject="src/main/java"
                            targetPackage="com.cexo.wiki.domain"/>

        <!-- mapper xml的位置 -->
        <sqlMapGenerator targetProject="src/main/resources"
                         targetPackage="mapper"/>

        <!-- mapper类的位置 -->
        <javaClientGenerator targetProject="src/main/java"
                             targetPackage="com.cexo.wiki.mapper"
                             type="XMLMAPPER"/>

        <table tableName="demo" domainObjectName="Demo"/>
    </context>
</generatorConfiguration>

其中需要更改的地方主要是这几个地方,

这块根据自己的项目情况再来修改既可。

(1)在src/main/resources目录下创建mybatis-generator.xml,这个文件在官网有示例,copy下来改一改就行。

其中需要更改的地方主要是这几个地方:

  • 要改的就是数据库链接地址(如果数据库不同),URL记得换成自己的数据库名,然后用户名和密码也要改。
  • 以及后面的targetPackage和targetProject。注意如果targetPackage写的包要存在,如果没有的话先新建包,再把对应的包写上去。
  • 在这里我新建了dataobject、mapping以及dao包。

table部分每一张表都要写一个table标签,这里只建了一张表因此就一个示例。

此时的目录结构:

注意添加了mapping之后需要在application.properties中添加:

mybatis.mapper-locations=classpath*:mapping/*.xml

3、自动生成器

(1)代码生成器的配置一切ok,接下来则需要执行生成命令,这里在run这块增加一个生成命令,如下,

mybatis-generator:generate -e

可以看到右上角,出现了,

(2)接下来咱们来看一下自动生成mybais的相关代码的效果,点击run就可以看到生成的文件了。

 

此时的目录结构是这样:

解决报错:不支援 10 验证类型。请核对您已经组态 pg_hba.conf 文件包含客户端的IP位址或网路区段,以及驱动程序所支援的验证架构模式已被支援。

场景复现:使用自动代码生成器,

原因:项目启动起来但是连接postgresql数据库报错。

解决方法:当出现这个错误的时候,不要慌,因为错误信息有提到pg_hba.conf,所以我们指定是要找到这个文件。

(1)首先找到本地的pg_hba.conf所在位置,

(2)然后,将下述代码粘贴到pg_hba.conf中,保存文件,如图所示:

# "local" is for Unix domain socket connections only
local   all             all                           trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

 

(3)最后重启下该对应的pg数据库的服务即可,

(4)在idea中重新运行自动生成器,

ok,成功解决。

4、测试

(1)再次更改TestDemoApplication,如下,

package com.example.testdemo;
import com.example.testdemo.dao.MyUserDOMapper;
import com.example.testdemo.dataobject.MyUserDO;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication(scanBasePackages = {"com.example.testdemo"})
@RestController
@MapperScan("com.example.testdemo.dao")
public class TestDemoApplication {
    @Autowired private MyUserDOMapper userDOMapper;

    @RequestMapping("/")
    public String home(){
//        return "Hello,world!";
        MyUserDO userDO = userDOMapper.selectByPrimaryKey("alice");
        if (userDO == null) {
            return "用户不存在";
        } else {
            return userDO.getPassword();
        }
    }
    public static void main(String[] args) {
        SpringApplication.run(TestDemoApplication.class, args);
    }

}

(2)run的时候记得run application,而不是run刚刚配置过的Maven命令,


再次访问http://localhost:8087/,显示123456,成功。

 问题:为什么@Autowired 和private UserDOMapper userDOMapper有错但还能执行

场景复现

 

原因:autowired应该是idea建议使用construtor来构建的一种引入方式,mapper上的红线是idea和mybatis融合的不好的问题,不影响使用。如果你看着难受可以在mapper的接口文件里的头部加上@Repository注解。

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

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

相关文章

最新的Windows docker安装方法

什么是Docker&#xff1f;关于Docker的相关概述&#xff0c;请看&#xff1a;Docker_面向架构编程的博客-CSDN博客在Windows10 or Windows11中安装docker主要就两步&#xff1a;1.安装wsl22. 安装docker一、安装WSL2安装wslwsl --install然后重启一下电脑在cmd窗口可以查看自己…

如何使用CVE-Tracker随时获取最新发布的CVE漏洞信息

关于CVE-Tracker CVE- Tracker是一款功能强大的CVE漏洞信息收集和更新工具&#xff0c;该工具基于自动化ps脚本实现其功能&#xff0c;可以帮助广大研究人员轻松获取到最新发布的CVE漏洞信息。 CVE-Tracker采用PowerShell开发&#xff0c;可以在操作系统启动的时候自动运行Mi…

计算机组成原理4小时速成5:系统总线,总线分类,数据总线,地址总线,控制总线,总线传输率

计算机组成原理4小时速成5&#xff1a;系统总线&#xff0c;总线分类&#xff0c;数据总线&#xff0c;地址总线&#xff0c;控制总线&#xff0c;总线传输率 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学…

华为6面,测试岗报价11k,HR说我不尊重华为,他们没有那么低薪资岗位?

在不知道一个公司的普遍薪资水平的时候&#xff0c;很多面试者不敢盲目的开价&#xff0c;但就因为这样可能使得面试官怀疑你的能力。一位网友就在网上诉说了自己的经历&#xff0c;男子是一位测试员&#xff0c;已经有九年的工作经历了&#xff0c;能力自己觉得还不错。 因为…

matlab-初学

初次学习了解matlab的相关知识&#xff0c;跟着b站博主学习的&#xff0c;仅此记录学习过程的笔记与感悟。命令行小常识1.命令行给变量赋值&#xff0c;回车即运行一行。2.逗号反馈这一行所有的变量结果&#xff1b;分号则不反馈&#xff0c;单实际变量值已经改变(只是不在下方…

22- estimater使用 (TensorFlow系列) (深度学习)

知识要点 estimater 有点没理解透 数据集是泰坦尼克号人员幸存数据. 读取数据&#xff1a;train_df pd.read_csv(./data/titanic/train.csv) 显示数据特征&#xff1a;train_df.info() 显示开头部分数据&#xff1a;train_df.head() 提取目标特征&#xff1a;y_train tr…

Web前端:四大Web应用开发趋势和技术

就像其他行业一样&#xff0c;web应用程序开发每年都会经历巨大的变化。就像人们说的&#xff0c;变化是技术中唯一不变的东西。因此&#xff0c;我们这里有一些你可以期待的市场变化。Web应用开发趋势和技术1.市场对聊天机器人和人工智能寄予厚望已经说过很多次&#xff0c;也…

java 面试

面试目录概述需求&#xff1a;设计思路实现思路分析1.面试概要参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge Survive. happy f…

JSTL核心库的简单使用

JSTL核心库的简单使用 7.1考试重点 7.1.1c:out输出数据 考试重点就是c的相关的 jar包下载地址:Apache Tomcat - Apache Taglibs Downloads 看会典型应用就可以<% page contentType"text/html;charsetUTF-8" language"java" %> <% taglib uri"…

DolphinDB 通过 Telegraf + Grafana 实现设备指标的采集监控和展示

基于原始数据采集的可视化监控是企业确保设备正常运行和安全生产的重要措施。本文详细介绍了如何从DolphinDB 出发&#xff0c;借助 Telegraf 对设备进行原始数据采集&#xff0c;并通过 Grafana 实现数据的可视化&#xff0c;从而实现设备指标的实时监控。1. 概览Telegraf 是 …

Mybatis-plus逻辑删除更新字段

MybatisPlus版本 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version> </dependency> <dependency><groupId>com.baomidou</groupId&g…

优思学院|DFMEA是全球制造业的必修课!

DFMEA&#xff08;Design Failure Mode and Effects Analysis&#xff09;是一种分析技术&#xff0c;在产品设计的早期阶段识别和解决潜在的失效问题。它通过分析设计的各个方面&#xff0c;识别潜在的失效模式和影响&#xff0c;并提出相应的改进措施&#xff0c;以减少失效的…

服装企业 采购系统

技术&#xff1a;Java、JSP等摘要&#xff1a;随着我国市场经济的不断发展,企业之间的竞争越来越激烈,只有对企业库存物资资源全面掌握,充分发挥闲置资源的利用,对资源进行优化配置,才能使企业效益达到最大化。只有通过规范科学的物资管理手段,才能节省物资采购成本,提高工作效…

Java——面向对象

目录 前言 一、什么是面向对象&#xff1f; 面向过程 & 面向对象 面向对象 二、回顾方法的定义和调用 方法的定义 方法的调用 三、类与对象的创建 类和对象的关系 创建与初始化对象 四、构造器详解 五、创建对象内存分析 六、封装详解 七、什么是继承&#x…

Unity TextMeshPro

Unity TextMeshPro 简介 TextMeshPro(也简称为TMP)号称是Unity的终极文本解决方案&#xff0c;它是Unity 的 UI 文本和旧版文本网格体的完美替代品。 功能强大且易于使用&#xff0c;使用高级文本渲染技术以及一组自定义着色器;提供实质性的视觉质量改进&#xff0c;同时在文…

Python基础教程(入门教程),初学者学Python编程如何快速入门?

【导语】Python是一种跨平台的计算机程序设计语言&#xff0c;通过Python编程&#xff0c;我们能够解决现实生活中的很多困难&#xff0c;现如今&#xff0c;我们工作中的许多工作都需要通过编写计算机软件来完成&#xff0c;那么初学者学Python编程如何快速入门呢?下面就来给…

【用Group整理目录结构 Objective-C语言】

一、接下来,我们看另外一个知识点,怎么用Group把这一堆乱七八糟的文件给它整理一下,也算是封装一下吧, 1.这一堆杂乱无章的文件: 那么,哪些类是属于模型呢,哪些类是属于视图呢,哪些类是属于控制器呢, 我们接下来通过Group的方式,来给它们分一下类, 这样看起来就好…

虚拟机安装ubuntu窗口自适应问题以及软件窗口显示不全解决方法

这部分查了很多博客&#xff0c;首先感谢前人栽树。 直接上我在安装过程中的有效解决步骤&#xff0c; 文后会描述遇到的非有效解决步骤&#xff0c;以供遇到相同问题的同学参考。 打开终端窗口 (ctrlaltt),当然肯定是一条一条的执行。 sudo apt-get update sudo apt-get upg…

第三章-OpenCV基础-7-形态学

前置 形态学主要是从图像中提取分量信息&#xff0c;该分量信息通常是图像理解时所使用的最本质的形状特征,对于表达和描绘图像的形状有重要意义。 大体就是通过一系列操作让图像信息中的关键信息更加凸出。同时&#xff0c;形态学的操作都是基于灰度图进行。 相关操作最主要…

Filebeat处理多行换行的问题

问题&#xff1a;在使用filebeatelabscience或者filebeatelk 又或者其他桥接器的时候&#xff0c;因为filbeat默认使用单行显示的原因&#xff0c;但日志出现堆栈错误或其他多行日志时会出现如下错误处理办法&#xff1a;1.固定日志格式 这里不展开说明2.匹配日志 找到你的file…