普元EOS学习笔记-创建精简应用
前言
本文依旧基于EOS8.3进行描述。
在上一篇文章《EOS8.3精简版安装》中,我们了解到普元预编译好的EOS的精简版压缩包,安装后,只能进行低开,而无法高开。
EOS精简版的高开方式是使用EOS开发工具提供的IDE,创建一个精简应用,然后就可以进行高开了。
本篇文章将一步步记录下我如何创建一个EOS的精简应用。
安装EOS开发工具
EOS只是一个缩写,这个体系下有很多东西,所以,千万不要把EOS理解为好像JEECG或若依那样就是一个简单的开发框架,那格局就太小了。
现在我就要用到EOS提供的开发工具IDE 。
IDE:集成开发环境,一般我们开发软件都会用到ide,比如eclipse , idea, vscode 等等。普元EOS也提供了一个专门用于开发EOS应用的ide。
不用意外,正如上图展示的,EOS的IDE其实就是在eclipse的基础上提供了若干用于EOS开发的插件。所以,EOS IDE的使用对于JAVA程序员并不困难,学习门槛很低。
获取EOS开发工具的介质
EOS开发工具的介质是一个 zip格式的压缩文件,EOS_Platform_8.3.1_Private_Medium_Develop.zip
获取介质请拨通普元热线电话 400-820-5821, 向普元工作人员申请即可。
解压安装
介质下载后,解压到 d:/primeton/eos-8.3-dev 文件夹。
为什么是 d盘?其实就是最后一个分区。
为什么是d:/primeton/eos-8.3-dev这个文件夹?这个开发工具下其实有很多东西,除了ide,还有自带的数据库、maven、redis,以及EOS相关的服务应用,这些程序的某些配置文件似乎对解压路径有所要求。我这里也不深究这个问题了,反正采用这个路径会减少很多运行中的麻烦。
从上图可以看到,EOS开发工具下并非只提供了ide,很多东西是为了微服务版本的EOS应用开发的。本文章是记录EOS精简应用的开发,就不对EOS开发工具的其他东西做解释了。
启动ide
EOS ide的启动需要先准备好JAVA环境,版本要求是 jdk1.8 。EOS开发工具并没有提供jdk,请自行安装。
同时还要配置好 maven,在EOS开发工具文件夹下,可以看到有maven 文件夹,一定要使用EOS提供的maven,因为EOS开发中需要很多普元提供的依赖,这些都需要到普元的maven仓库拉取。EOS提供的maven的settings.xml文件中已经配置好了依赖仓库,没有这些配置是无法编译EOS项目的。
运行 D:\primeton\eos-8.3-dev\ide\eclipse\eclipse.exe 文件,实现ide的启动。
ide启动后,可以看到就是一个eclipse,当然,细心看到话也会发现,处处都渗透着EOS和普元的痕迹,因为这个eclipse已经被安装了很多EOS的插件。
ide的首选项中配置java环境
在菜单中选择 窗口 -- 首选项,打开ide的首选项窗口,选择java - 已安装的JRE 选项。
配置自己电脑上JDK1.8
然后再选择 java - 已安装的JRE - 执行环境,选中 JavaSE-1.8 ,然后勾选刚刚安装的jre选项。
配置maven环境:
依旧是在ide的首选项窗口,选择 maven - User Settings ,然后在右侧 User Settings文本框,选择ide提供的maven下的settings.xml文件,然后点击 Update Settings 按钮。
最后点击应用并关闭,完成ide首选项的编辑。
这样就为ide配置好了java和maven环境。
创建精简应用
在ide中,点击菜单项 文件 - 新建 - EOS项目,打开新建EOS项目的窗口。
在这个窗口,我们看到可以选择4种项目类型,我们不解释后面3种,直接选中精简应用,点击下一步,下一步,就完成EOS精简应用的创建了。
当然,操作的时候步骤慢一点,先点击一次下一步,打开进入第一个配置窗口如下,我们可以直接采用默认项,当然也可以修改一下这些配置项。
这里我将 项目名称修改为 express08,端口修改为 28018。项目名称就是ide中显示的项目名称,端口是精简应用编译运行后,在浏览器中请求时的端口,比如我现在修改为 28018,以后我启动项目的时候就要输入 http://127.0.0.1:28018 来访问了。
关于应用名称和应用所在系统编码,这两项最好别动,修改了可能会有预想不到的麻烦,反正咱先听话好了。
然后点击完成,之后要耐心等待一段时间。
这段时间的时候,我们可以看到左侧已经出现了 express08 这个项目。
同时,在ide下面找到进度标签按钮,点击会打开进度窗口,可以看到类似下图这样的执行过程。这是创建精简应用的过程,在这个过程中会先创建出项目的结构,然后调用maven对项目进行预编译,会拉取项目所需的依赖。
这个过程如果有问题,大概率是 1 java环境没配置好,2 maven没配置好。 那么就回到本文的前面“解压安装”这一节,看看如何配置。
经过耐心等待后,当进度不再有新动态的时候,一切归于平静,新的生命诞生了。
项目结构
展开express08项目,可以看到结构如上图,简单对这个结构解释一下。
首先,可以确定express08是一个Maven两层的父子项目。
父项目就是 express08,这个项目的pom.xml中可以看到express08也有父项目,如下面的xml配置信息所示。
同时可以看到,其下有4个子模块,分别是 model api core boot,这4个,当然,模块的名字不是这么简单,前面还有 com.primeton.eos.express08 这么有一大串,我懒得打字了,阅读者知道啥意思就可以了。
再之后可以看到pom.xml中标记了一系列的 primeton 的依赖,不做赘述,也不做深究,知道是有这么多 primeton的依赖即可,这些依赖从 maven官方仓库可拉取不到,只能到普元maven仓库才可以获取。
这4个子模块都是啥意思?有啥作用?我把我的理解记录下来,供阅读者借鉴,但我需要声明一下,这些并非权威解释。
首先说第2个子模块 boot
( 阅读者知道其实完整模块名称是 com.primeton.eos.express08.boot ),这是核心启动模块,最终express08的编译、运行,都是在这个模块中。
具体看一下文件结构就知道了,boot子模块下的 Java源代码部分有一个 Application.java 文件,熟悉springboot开发的阅读者都知道,这是SpringBoot应用的启动类。
据此,我们也能分析出来,EOS的精简应用本质是基于maven构件的SpringBoot项目,开发工具是安装了EOS插件的Eclipse。
这个文件夹下还有一个 Web文件夹,这些是所有前端静态资源。
EOS开发的应用程序(本文创建的是精简应用,还可以创建独立应用、微服务应用等)都是前后端分离的,精简应用的前端静态资源就被放在了Web文件夹中。
如果需要对前端静态资源修改重新编译,那么可以获取前端的源代码,然后编译后覆盖Web文件夹即可,关于前端编译开发不是本文所要描述的知识,就不展开讲解了。
同时,boot子模块下还包含了精简应用所有的配置文件。
配置文件很多,配置项目更是林林总总,就不一一赘述了,这里只修改一下数据库连接配置项,保证程序能启动就行了,另外,在看看application.properties文件,毕竟设置项目中最重要的配置文件。
application.properties配置文件,咱也不过多解释,就看一个端口吧。28018,之前创建精简应用的时候,填写的端口就是这个,没必要过多解释。
数据库连接配置文件,在 user-config.xml 中,在这个文件中配置,数据库连接的配置内容很简单,不多说了。
boot子模块的pom.xml文件:从这个模块可以看到,boot子模块的父模块是express08。
从dependencies 这部分可以看出boot依赖于 api 、 core 、 model这3个子模块。
boot子模块的说明就这些吧。
接下来说说model子模块
先看一下model的pom.xml,分析后可以看到 model 的父模块是 express08。
接着会发现 model并没有其他的依赖。所以 pom.xml很简单。
再多解释一下 model的pom.xml提供的一个插件 eos-ptp-maven-plugin ,这个插件是普元EOS的一个插件,似乎这个插件是在项目打包的时候将多个sql语句合并为 all.sql插件。我个人的理解是 EOS应用底层其实是多个子模块组成的,比如 afcenter / bps / bfp 等等(关于这些子模块概念以后慢慢聊),这些子模块需要若干数据表,在源代码中按照不同子模块提供了若干sql文件,这个插件将多个sql文件合并为一个all.sql文件。
model子模块规划中主要是用来存放数据实体。
model下有4个资源包:构件、数据、运算和流程,这4个资源包是EOS的概念,这里简单说一下,以后我梳理一下详细解释一下EOS这些概念。
构件:EOS的构件是一个独有的概念。一般来说,程序员实现一个功能都是通过开发一个方法,然后编写一系列代码来实现具体的逻辑,细想想这些代码无非就是顺序流、循环(for while)、分支(if else) 然后调用其他方法实现功能的组合,从而实现业务需要的逻辑。
EOS的低开设计将创建方法和编写代码的过程,转换为创建一个构件,在构件中使用流程和功能编排来实现逻辑。视觉效果如下
看起来,以前写代码,采用EOS构件成了拖拉拽,可以在运行时随时调整代码逻辑。软件开发的技术门槛降低了很多,灵活性和程序稳定性提高了很多。
上面这个构件的流程有若干节点上面有红色的小图标,这是因为这些节点的配置有问题。因为这个构件编排我只是为了让阅读者知道构件是个什么东西,所以,编排的时候我并没有对构件进行调试,若干节点是有错的,所以这些节点的左上角就显示一个红色的小图标。
构件一般配置在 model 和 core这两个模块中,boot和api模块一般是不创建构件的。
数据:model主要用于存放数据实体,这些数据实体具体都放在数据资源包下面。数据实体就是数据表的java实体类,EOS的数据实体都继承自DataEntity,结构看起来要比普通的Java实体类复杂一些,当然,也要强大的多。以后会不断使用这个DataEntity,慢慢就会熟悉和习惯了,这里就不赘述了。
EOS连接数据库后,可以直接对应数据表实现反向生成,所以,数据实体的创建是非常高效的。
运算:Java程序员看这个就比较容易理解了,就是Java的类和方法,只是在类和方法上增加 @Bizlet 注解。
普通的Java方法是不能被EOS构件调用的,加上@Bizlet注解后,构件编排的时候就可以调用到这个“运算”了。
流程:刚刚的构件其实我们已经看到了流程编排,EOS的流程自然更是流程编排了。构件实现的功能性的逻辑流,EOS流程实现的是工作流。EOS工作流引擎叫做BPS(似乎是 Business Process Suite的缩写,业务流程平台),这是EOS实现工作流的核心组件。这里的流程模块就是用于绘制BPS的流程图的。关于工作流的概念,如果有阅读者不熟悉,可以自行百度一下,这里就不做赘述了。
core子模块
见名知意,这个是核心模块,从其下的资源包可以看到也是 构件、数据、运算、流程。
所以,功能上core子模块和model都差不多。
我个人的习惯,一般构件、运算、流程会放在core中,而数据实体会放在model下。
api子模块
api子模块有数据、运算,还多了一个服务。
服务:EOS的服务可以理解就是SpringBoot项目中的controller层的 Restful接口,不过实现上是直接将某个构件发布成一个服务。当然,EOS的服务自然比传统的Restful接口更强大,与EOS技术生态更亲近,在做逻辑流编排的时候,也可以调用EOS服务,在低开的时候,也可以调用EOS服务。具体的使用在实践中慢慢体会吧,这里只是把EOS服务这个概念简单说明一下。
如下图,在ide中右键选择一个构件,可以看到发布EOS服务的选项。
EOS精简版和EOS精简应用的关系
EOS精简版就是EOS预编译好的项目。
EOS精简应用是使用EOS ide创建的EOS精简版应用。
可以理解为 EOS精简应用 编译打包后,发布出来的就是EOS精简版,也就是说EOS精简版就是EOS开发团队预编译好的一个EOS精简应用。
由于EOS精简版是预编译好发布的,没有源代码,所以,无法进行高开,只能进行低开。
EOS精简应用是可以实现高低开结合开发的。
初始化数据库
刚刚说了,EOS精简应用就是自己定义的、可以进行高开的、可以自定义源代码的EOS精简版。
所以,EOS精简应用的数据库就是EOS精简版的数据库。
因此,初始化的数据库文件就是 EOS精简版文件夹下的 db_scripts/all/Mysql/all.sql 文件。这里使用的是mysql数据库,如果是其他类型的数据库,请采用其他数据库的初始SQL脚本。
本文创建了mysql的数据库 eos83express ,基字符集采用 utf8mb4。
然后,在这个数据库中执行 all.sql脚本文件,执行后数据库和数据表看起来是这样的:
数据表太多了,只展示了一部分。
看数据表的前缀有几大类:
afc_xxx: 这是afcenter相关的数据表,afcenter的全称是应用联邦中心,EOS采用的是微服务思想进行项目管理,微后端,还有微前端,然后在afcenter中将各服务整合在一起。afc就是afcenter的缩写。
bfp_xxx: 这些是 bfp相关的数据表。 bfp好像是 bps的扩展功能,bps是EOS的工作流引擎,bfp应该也是提供工作流相关的功能的扩展。关于bfp的概念我不敢说我的描述是准确的,我再强调一下,我不是普元产品的专家,我只是将我学习EOS的过程记录下来,所以,如果有些地方是错误的,我会及时纠正,如果给阅读者造成了困扰,我不承担任何后果,只是由衷的说一句抱歉,仅此而已。
lc_xxx: 这些是低开相关的数据表 。lc是低开的英文 low code的缩写。低开的生产的其实是各种配置脚本,这些配置脚本就被存储在这些数据表中。
rdc_xxx: 这些表我还不太清楚是啥意思。看表里面的内容,似乎是和GPT相关的表,也许是GPT调用的远程连接相关信息记录表。
wfxxxx:这些数据工作流引擎相关的表。wf是工作流 work flow的缩写。之前说过,EOS的工作流引擎产品叫BPS,这些表应该都是属于bps的表。
启动
EOS精简应用的启动,首先要配置好数据库连接,然后对主模块express08执行mvn install ,之后就可以启动boot了。
配置数据库连接
启动前,先修改数据库连接配置文件
com.primeton.eos.express08.boot/配置/_srv/config/user-config.xml文件
我将数据库连接的驱动修改为 com.mysql.cj.jdbc.Driver
数据库名修改为 eos83express
数据库登录账号和密码是 admin 和 111111
执行mvn install
启动项目前,需要先对express08执行 mvn clean install
我个人习惯执行 mvn 命令的时候加一个 clean , 这个意思是先清理项目之前编译的结果,然后重新执行编译。
右键 express08/pom.xml 文件,选择 运行方式 - maven install
当然,也可以直接在cmd窗口中执行 mvn clean install
执行boot子模块
之后就可以执行 boot 应用了。两种方式
1 在eclipse中,右键 Application.java类
2 在 cmd 窗口进入 boot子模块的根目录,执行 mvn clean spring-boot:run
注意:这个方式在win10中经常会文件名过长而无法执行的问题,这个也没办法,就还是在eclipse中执行吧。
浏览器访问
应用启动后,就可以在浏览器访问应用了。
在浏览器输入地址 http://127.0.0.1:28018
这个端口 28018 是在boot子模块的配置文件 application.properties中配置的。
账号和密码是 admin 和 000000
结尾
本文就写到这里,以后有时间再讲讲EOS精简应用的操作方法、低开,以及高开。
相关文章:
![](https://img-blog.csdnimg.cn/direct/349d9a2c57384154908cc377e3098e5e.png)
普元EOS学习笔记-创建精简应用
前言 本文依旧基于EOS8.3进行描述。 在上一篇文章《EOS8.3精简版安装》中,我们了解到普元预编译好的EOS的精简版压缩包,安装后,只能进行低开,而无法高开。 EOS精简版的高开方式是使用EOS开发工具提供的IDE,创建一个…...
![](https://img-blog.csdnimg.cn/direct/7916dfb718f745678a049978d52d4e7a.png)
观察者模式在金融业务中的应用及其框架实现
引言 观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,使得多个观察者对象同时监听某一个主题对象。当这个主题对象发生变化时,会通知所有观察者对象,使它们能够自动更新。…...
![](https://www.ngui.cc/images/no-images.jpg)
最新docker仓库镜像
目前下面的docker仓库镜像源还能使用。 vi /etc/docker/daemon.json添加如下配置{"registry-mirrors": ["https://hub.uuuadc.top", "https://docker.anyhub.us.kg", "https://dockerhub.jobcher.com", "https://dockerhub.icu&…...
![](https://i-blog.csdnimg.cn/direct/a7637e8896d74bee885b86cbb98b08de.png)
springboot 3.x相比之前版本有什么区别
Spring Boot 3.x相比之前的版本(尤其是Spring Boot 2.x),主要存在以下几个显著的区别和新特性: Java版本要求: Spring Boot 3.x要求至少使用Java 17作为最低版本,同时已经通过了Java 19的测试,…...
![](https://img-blog.csdnimg.cn/direct/0861b11996bd45c7bd6c3255c95df993.png)
Python逻辑控制语句 之 判断语句--if语句的基本结构
1.程序执行的三大流程 顺序 分支(判断) 循环 2.if 语句的介绍 单独的 if 语句,就是 “如果 条件成⽴,做什么事” 3.if 语句的语法 if 判断条件: 判断条件成立,执行的代码…...
![](https://img-blog.csdnimg.cn/direct/3c85a4157bdb4a0399dfb5b5ecf632f3.png)
LeetCode 算法:翻转二叉树 c++
原题链接🔗:翻转二叉树 难度:简单⭐️ 题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 …...
![](https://img-blog.csdnimg.cn/direct/824b897e04224b5798de4deaba7402fe.png)
七天速通javaSE:第五天 数组进阶
文章目录 前言一、二维数组二、Arrays类1.toString打印数组内各元素1.1 示例1.2 自己实现内部逻辑 2. sort升序排列3. fill数组填充(重新赋值)4.equals比较数组元素是否相等 三、冒泡排序 前言 本文将学习二维数组、arrays类以及冒泡排序 一、二维数组 …...
![](https://www.ngui.cc/images/no-images.jpg)
游戏心理学Day28
独立游戏团队架构 独立游戏工作室是一个包括编程美术设计院校项目管理和运营等各种职能的团队找到可以共同奋斗。数月甚至数年的合适人选并不是一件容易的事情。游戏开发过程中要涉及多种常规工作。小团队的每个成员通常都要身兼数职,而且有些角色常由多人担任。 …...
![](https://img-blog.csdnimg.cn/direct/059b87b6f9b6493cac54d247be427c79.png#pic_center)
鸿蒙开发设备管理:【@ohos.multimodalInput.inputEventClient (注入按键)】
注入按键 InputEventClient模块提供了注入按键能力。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口均为系统接口,三方应用不支持调用。 导入模块 import inputEventCli…...
![](https://www.ngui.cc/images/no-images.jpg)
C++:std::function的libc++实现
std::function是个有点神奇的模板,无论是普通函数、函数对象、lambda表达式还是std::bind的返回值(以上统称为可调用对象(Callable)),无论可调用对象的实际类型是什么,无论是有状态的还是无状态…...
![](https://static.oschina.net/uploads/img/202406/28230004_9pA1.png)
DM 的断点续传测试
作者: 大鱼海棠 原文来源: https://tidb.net/blog/4540ae34 一、概述 DM有all、full、incremental三种数据迁移同步方式(task-mode),在all同步模式下,因一些特殊情况,需要变更上游MySQL的数…...
![](https://img-blog.csdnimg.cn/direct/471f207c3cd9415581a09a7b3dedbd0f.jpeg)
力扣每日一题 6/30 记忆化搜索/动态规划
博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 494.目标和【中等】 题目: 给你一个非负整数数组 nums 和一个…...
![](https://img-blog.csdnimg.cn/direct/e3a8c2c675644e64a8475be519f7a249.png)
图像基础知识入门【图像概念不同图像格式】
图像基础知识入门【图像概念&不同图像格式】 最近有在处理图像转换,因此稍微补足了一下图像相关知识,特在此记录。下面汇总是我根据自己理解和网上查阅资料而来。如有错误,欢迎大家指正。 1 基础概念 像素/分辨率 像素(Pixel)ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
HP服务器基于SNMP-ilo4的硬件监控指标解读
监控易是一款功能全面的IT基础设施监控软件,它通过SNMP协议与HP服务器内置的ilo4远程管理卡进行通信,实现对HP服务器硬件状态的实时监控。本文将针对监控易中基于SNMP-ilo4的HP服务器硬件监控指标进行解读,帮助运维团队更好地理解和应用这些监…...
![](https://www.ngui.cc/images/no-images.jpg)
Android13系统导航栏添加音量加减键按钮功能
不知道为什么拿到芯片原厂发布给我们的Android13系统源码编译后,导航栏没有音量加减键,客户有反馈这个问题,所以特意加了一下,修改记录如下:frameworks/base目录下 commit 9cb2244d61a237cab03c540bfcca6e4fac2bea2c …...
![](https://img-blog.csdnimg.cn/direct/cb0c06083f464519ad8e3f97c35e84da.png#pic_center)
普及GIS知识,推动产业发展
915 GIS节:普及GIS知识,推动产业发展 自2008年起,每年的9月15日被定为“GIS节”,这一特殊的节日由超图首次发起倡议,旨在打造一个普及和传播GIS(地理信息系统)知识的平台,促进大众对…...
![](https://img-blog.csdnimg.cn/img_convert/d96679b3e8dc3993a95688af7c22ad32.png)
第2章-Python编程基础
#本章目标 1,了解什么是计算机程序 2,了解什么是编程语言 3,了解编程语言的分类 4,了解静态语言与脚本语言的区别 5,掌握IPO程序编写方法 6,熟练应用输出函数print与输入函数input 7,掌握Python…...
![](https://img-blog.csdnimg.cn/img_convert/60ab4d1bae9899290a9b06f6f19bab5a.png)
LDO产品的基础知识解析
低压降稳压器 (LDO)是一种用于调节较高电压输入产生的输出电压的简单方法。在大多数情况下,低压降稳压器都易于设计和使用。然而,如今的现代应用都包括各种各样的模拟和数字系统,而有些系统和工作条件将决定哪种LDO最适合相关电路,…...
![](https://img-blog.csdnimg.cn/direct/7dc40ea6e73f48f9bca3ae4b90e4614a.png)
如何利用python画出AHP-SWOT的战略四边形(四象限图)
在企业或产业发展的相关论文分析中,常用到AHP-SWOT法进行定量分析,形成判断矩阵后,如何构造整洁的战略四边形是分析的最后一个环节,本文现将相关代码发布如下: import mpl_toolkits.axisartist as axisartist import …...
![](https://img-blog.csdnimg.cn/img_convert/60e244ad8e9ffe70794083594fc412aa.webp?x-oss-process=image/format,png)
适用于智慧城市、智慧文旅等在线场景的轻量级3D数字人引擎MyAvatar简介
本人研发的国内首个纯面向web应用和小程序的轻量级3D虚拟人引擎MyAvatar。 功能简述 支持3D模型定制(写实或卡通风格均可,人物模型需实现绑定和变形)动画可以内置于模型中,也可以单独以glb或fbx格式导出并动态加载支持readyplay…...
![](https://img-blog.csdnimg.cn/img_convert/76003c0ecbaebe231aee9afa556fa5a2.png)
Excel显示/隐藏批注按钮为什么是灰色?
在excel中,经常使用批注来加强数据信息的提示,有时候会把很多的批注显示出来,但是再想将它们隐藏起来,全选工作表后,“显示/隐藏批注”按钮是灰色的,不可用。 二、可操作方法 批注在excel、WPS表格中都是按…...
![](https://img-blog.csdnimg.cn/direct/7e7b2dca254c4f6b9b74a46e1c6ab7e1.gif#pic_center)
ArtTS系统能力-通知的学习(3.1)
上篇回顾: ArtTS语言基础类库-容器类库内容的学习(2.10.2) 本篇内容: ArtTS系统能力-通知的学习(3.1) 一、 知识储备 1. 基础类型通知 按内容分成四类: 类型描述NOTIFICATION_CONTENT_BASIC_TEXT普通文…...
![](https://www.ngui.cc/images/no-images.jpg)
Apollo9.0 PNC源码学习之Planning模块(三)—— public_road_planner
前面文章: (1)Apollo9.0 PNC源码学习之Planning模块(一)—— 规划概览 (2)Apollo9.0 PNC源码学习之Planning模块(二)—— planning_component 1 planning_interface_base 规划接口基类: planning\planning_interface_base\planner_base\planner.h #pragma once#in…...
![](https://img-blog.csdnimg.cn/direct/49aa1855d16f463090641dda47635d0a.png)
【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor
背景: linux服务器,CentOS 6操作系统,默认版本python2.6.6,避免安装过多的依赖不升级python 在网上查的资料python2.6.6兼容supervisor版本 3.1.3 安装supervisor 手动在python官网下载supervisor,并上传到服务器 下…...
![](https://img-blog.csdnimg.cn/direct/850e5974e6f440b6ba0ac566b7275275.png)
推荐系统三十六式学习笔记:原理篇.模型融合14|一网打尽协同过滤、矩阵分解和线性模型
目录 从特征组合说起FM模型1.原理2.模型训练3.预测阶段4.一网打尽其他模型5.FFM 总结 在上一篇文章中,我们讲到了使用逻辑回归和梯度提升决策树组合的模型融合办法,用于CTR预估,给这个组合起了个名字,叫“辑度组合”。这对组合中&…...
![](https://img-blog.csdnimg.cn/img_convert/aaa840459092ebddc691d98f536247ca.jpeg)
如何使用mapXplore将SQLMap数据转储到关系型数据库中
关于mapXplore mapXplore是一款功能强大的SQLMap数据转储与管理工具,该工具基于模块化的理念开发,可以帮助广大研究人员将SQLMap数据提取出来,并转储到类似PostgreSQL或SQLite等关系型数据库中。 功能介绍 当前版本的mapXplore支持下列功能…...
![](https://img-blog.csdnimg.cn/direct/c2d9114822db4cc59a6c9c1a8188fe59.png)
JAVA设计模式-大集合数据拆分
背景 我们在做软件开发时,经常会遇到把大集合的数据,拆分成子集合处理。例如批量数据插入数据库时,一次大约插入5000条数据比较合理,但是有时候待插入的数据远远大于5000条。这时候就需要进行数据拆分。数据拆分基本逻辑并不复杂&…...
![](https://img-blog.csdnimg.cn/img_convert/62f6840adee7b7b23071d2ed59d81942.jpeg)
如何使用sr2t将你的安全扫描报告转换为表格格式
关于sr2t sr2t是一款针对安全扫描报告的格式转换工具,全称为“Scanning reports to tabular”,该工具可以获取扫描工具的输出文件,并将文件数据转换为表格格式,例如CSV、XLSX或文本表格等,能够为广大研究人员提供一个…...
![](https://img-blog.csdnimg.cn/direct/f97fa48283b94d9d949b1562afadcf28.png)
ansible自动化运维,(2)ansible-playbook
三种常见的数据格式: XML:可扩展标记语言,用于数据交换和配置 JSON:对象标记法,主要用来数据交换或配置,不支持注释 YAML:不是一种标记语言,主要用来配置,大小写敏感&…...
![](https://img-blog.csdnimg.cn/direct/19806ebfeca046d382dba6006295d4be.png)
一分钟学习数据安全—自主管理身份SSI分布式标识DID介绍
SSI标准化的两大支柱,一个是VC,之前简单介绍过,另一个就是DID。基本层次上,DID就是一种新型的全局唯一标识符,跟浏览器的URL没有什么不同。深层次上,DID是互联网分布式数字身份和PKI新层级的原子构件。 一…...
![](https://www.ngui.cc/images/no-images.jpg)
[单master节点k8s部署]11.服务service
service service是一个固定接入层,客户端 可以访问service的ip和端口,访问到service关联的后端pod,这个service工作依赖于dns服务(coredns) 每一个k8s节点上都有一个组件叫做kube-proxy,始终监视着apiser…...
![](https://www.ngui.cc/images/no-images.jpg)
ES6面试题——箭头函数和普通函数有什么区别
1. this指向问题 <script> let obj {a: function () {console.log(this); // 打印出:{a: ƒ, b: ƒ}},b: () > {console.log(this); // 打印出Window {window: Window, self: Window,...}}, }; obj.a(); obj.b(); </script> 箭头函数中的this是在箭…...
![](https://img-blog.csdnimg.cn/img_convert/e66e0a1404dfd6d516e231d2ef843a3a.png)
WordPress中文网址导航栏主题风格模版HaoWa
模板介绍 WordPress响应式网站中文网址导航栏主题风格模版HaoWa1.3.1源码 HaoWA主题风格除行为主体导航栏目录外,对主题风格需要的小控制模块都开展了敞开式的HTML在线编辑器方式的作用配备,另外预埋出默认设置的编码构造,便捷大伙儿在目前…...
![](https://img-blog.csdnimg.cn/img_convert/7e93029307c4a376c1c90751d7622ade.png)
ThreadPoolExecutor基于ctl变量的声明周期管理
个人博客 ThreadPoolExecutor基于ctl变量的声明周期管理 | iwts’s blog 总集 想要完整了解下ThreadPoolExecutor?可以参考: 基于源码详解ThreadPoolExecutor实现原理 | iwts’s blog ctl字段的应用 线程池内部使用一个变量ctl维护两个值ÿ…...
![](https://img-blog.csdnimg.cn/direct/e7468eb51dab4b05b3ee845cf4267dbc.png)
运维锅总详解Prometheus
本文尝试从Prometheus简介、架构、各重要组件详解、relable_configs最佳实践、性能能优化及常见高可用解决方案等方面对Prometheus进行详细阐述。希望对您有所帮助! 一、Prometheus简介 Prometheus 是一个开源的系统监控和报警工具,最初由 SoundCloud …...
![](https://www.ngui.cc/images/no-images.jpg)
深入解析Tomcat:Java Web服务器(上)
深入解析Tomcat:Java Web服务器(上) Apache Tomcat是一个开源的Java Web服务器和Servlet容器,用于运行Java Servlets和JavaServer Pages (JSP)。Tomcat在Java Web应用开发中扮演着重要角色。本文将详细介绍Tomcat的基本概念、安装…...
![](https://www.ngui.cc/images/no-images.jpg)
【第9章】MyBatis-Plus持久层接口之SimpleQuery
文章目录 前言一、使用步骤1.引入 SimpleQuery 工具类2.使用 SimpleQuery 进行查询 二、使用提示三、功能详解1. keyMap1.1 方法签名1.2 参数说明1.3 使用示例1.4 使用提示 2. map2.1 方法签名2.2 参数说明2.3 使用示例2.4 使用提示 3. group3.1 方法签名3.2 参数说明3.3 使用示…...
![](https://img-blog.csdnimg.cn/direct/71a52bdae16b465ea73bbb7809104611.png)
一文带你了解乐观锁和悲观锁的本质区别!
文章目录 悲观锁是什么?乐观锁是什么?如何实现乐观锁?什么是CAS应用局限性ABA问题是什么? 悲观锁是什么? 悲观锁它总是假设最坏的情况,它会认为共享资源在每次被访问的时候就会出现线程安全问题࿰…...
![](https://img-blog.csdnimg.cn/direct/7332f974ea6c48719a8c9745c6107588.png)
Android Studio环境搭建(4.03)和报错解决记录
1.本地SDK包导入 安装好IDE以及下好SDK包后,先不要管IDE的引导配置,直接新建一个新工程,进到开发界面。 SDK路径配置:File---->>Other Settings---->>Default Project Structure 拷贝你SDK解压的路径来这,…...
![](https://img-blog.csdnimg.cn/direct/d0e1b40494b645ce8e9a3b77f3ff17d9.jpeg#pic_center)
基于协同过滤的电影推荐与大数据分析的可视化系统
基于协同过滤的电影推荐与大数据分析的可视化系统 在大数据时代,数据分析和可视化是从大量数据中提取有价值信息的关键步骤。本文将介绍如何使用Python进行数据爬取,Hive进行数据分析,ECharts进行数据可视化,以及基于协同过滤算法…...
![](https://img-blog.csdnimg.cn/direct/38c711ab62d046a7b4f9ebc228dd1e43.png)
修复vcruntime140.dll方法分享
修复vcruntime140.dll方法分享 最近在破解typora的时候出现了缺失vcruntime140.dll文件的报错导致软件启动失败。所以找了一番资料发现都不是很方便的处理,甚至有的dll处理工具还需要花钱????,我本来就是为…...
![](https://www.ngui.cc/images/no-images.jpg)
PostgreSQL的系统视图pg_stat_wal_receiver
PostgreSQL的系统视图pg_stat_wal_receiver 在 PostgreSQL 中,pg_stat_wal_receiver 视图提供了关于 WAL(Write-Ahead Logging)接收进程的统计信息。WAL 接收器是 PostgreSQL 集群中流复制的一部分,它在从节点中工作,…...
![](https://img-blog.csdnimg.cn/direct/9b221bc402284c79850eb87d2079f9b7.png)
Qt之Pdb生成及Dump崩溃文件生成与调试(含注释和源码)
文章目录 一、Pdb生成及Dump文件使用示例图1.Pdb文件生成2.Dump文件调试3.参数不全Pdb生成的Dump文件调试 二、个人理解1.生成Pdb文件的方式2.Dump文件不生产的情况 三、源码Pro文件mian.cppMainWindowUi文件 总结 一、Pdb生成及Dump文件使用示例图 1.Pdb文件生成 下图先通过…...
![](https://img-blog.csdnimg.cn/direct/de5703e751a94b21956e8801c97a1db0.jpeg)
视频号视频怎么保存到手机,视频号视频怎么保存到手机相册里,苹果手机电脑都可以用
随着数字媒体的蓬勃发展,视频已成为我们日常生活中不可或缺的一部分。视频号作为众多视频分享平台中的一员,吸引了大量用户上传和分享各类精彩视频。然而,有时我们可能希望将视频号上的视频下载下来,以下将详细介绍如何将视频号的视频。 方法…...
![](https://img-blog.csdnimg.cn/direct/8dcc58fd58684e07a76a7295e6da4c85.png)
Softmax函数的作用
Softmax 函数主要用于多类别分类问题,它将输入的数值转换为概率分布。 具体来说,对于给定的输入向量 x [x_1, x_2,..., x_n] ,Softmax 函数的输出为 y [y_1, y_2,..., y_n] ,其中: 这样,Softmax 函数的输…...
![](https://img-blog.csdnimg.cn/direct/a7e6ce10b0e54b8d9b2a012117c9279b.gif#pic_center)
cesium 添加 Echarts 图层(空气质量点图)
cesium 添加 Echarts 图层(下面附有源码) 1、实现思路 1、在scene上面新增一个canvas画布 2、通坐标转换,将经纬度坐标转为屏幕坐标来实现 3、将ecarts 中每个series数组中元素都加 coordinateSystem: ‘cesiumEcharts’ 2、示例代码 <!DOCTYPE html> <html lan…...
![](https://img-blog.csdnimg.cn/direct/f0ee1c828df1462fa60fbc8611bc6560.jpeg)
Python技术笔记汇总(含语法、工具库、数科、爬虫等)
对Python学习方法及入门、语法、数据处理、数据可视化、空间地理信息、爬虫、自动化办公和数据科学的相关内容可以归纳如下: 一、Python学习方法 分解自己的学习目标:可以将学习目标分基础知识,进阶知识,高级应用,实…...
![](https://img-blog.csdnimg.cn/direct/97315ed78906465b9005d111e24251c5.png)
Nacos-注册中心
一、注册中心的交互流程 注册中心通常有两个角色: 服务提供者(生产者):对外提供服务的微服务应用。它会把自身的服务地址注册到注册中心,以供消费者发现和调用。服务调用者(消费者):调用其他微服务的应用程序。它会向注册中心订阅自己需要的服…...
![](https://img-blog.csdnimg.cn/direct/6322a7afd8844813b94c508fe9d99412.png)
Unity制作一个简单抽卡系统(简单好抄)
业务流程:点击抽卡——>播放动画——>显示抽卡面板——>将随机结果添加到面板中——>关闭面板 1.准备素材并导入Unity中(包含2个抽卡动画,抽卡结果的图片,一个背景图片,一个你的展示图片) 2.给…...
![](https://img-blog.csdnimg.cn/direct/2ef7b349bad04516958520dc3b249445.png)
简单多状态DP问题
这里写目录标题 什么是多状态DP解决多状态DP问题应该怎么做?关于多状态DP问题的几道题1.按摩师2.打家劫舍Ⅱ3.删除并获得点数4.粉刷房子5.买卖股票的最佳时期含手冷冻期 总结 什么是多状态DP 多状态动态规划(Multi-State Dynamic Programming, Multi-St…...
![](https://img-blog.csdnimg.cn/direct/c089d1a9e21f4fdb91ad8cb71f391c3a.png)
帮助你简易起步一个BLOG(博客搭建)项目
Blog项目 后端项目结构1. 项目初始化2. 详细步骤3.postman测试 前端1. 项目初始化2. 详细步骤 本章节是为了帮助你起步一个完整的前后端分离项目。 前端技术栈: react、vite、mantine、tailwind CSS、zustand、rxjs、threejs 后端技术栈:nodemon、nodej…...
![](https://img-blog.csdnimg.cn/direct/d49f7f65fe08433ea508a84c8990796e.png)
字符串知识点
API API和API帮助文档 API:目前是JDK中提供的各种功能的Java类。 这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。 API帮助文档:帮助开发人员更好的使用API和查询API的一个工具。 String概…...
![](https://img-blog.csdnimg.cn/direct/29725e00b9374da884cc6165db0c8d9c.png)
Android 换肤之主题换肤
文章目录 Android 换肤之主题换肤概述效果实现代码结构定义属性定义主题在Activity中使用在Fragment中使用工具类 源码下载 Android 换肤之主题换肤 概述 Android 实现应用内换肤的常用方式(两种): 通过Theme切换主题,即静态方…...
![](https://img-blog.csdnimg.cn/img_convert/28cc909d556c841b3c896e9f743fb3f1.png)
ArcTs布局入门04——相对布局 媒体查询
如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧 扫描下面的二维码关注公众号。 本文将探讨相对布局与媒体查询,为啥把他们放到一起呢?主要是因为相对布局在响应式的场景下做得不太好,一般情况下和媒体查询(不同尺…...
![](https://www.ngui.cc/images/no-images.jpg)
ASPICE培训:推动汽车行业软件质量的新高度
在当今日新月异的汽车行业中,软件技术已经成为推动行业发展的核心动力。随着智能化、网联化、电动化等趋势的加速,汽车软件的质量和性能要求也越来越高。为了满足这一需求,ASPICE(Automotive SPICE)标准应运而生&#…...
![](https://img-blog.csdnimg.cn/img_convert/77bfc73ea679a60654035e1c5e50aea2.jpeg)
爬虫cookie是什么意思
“爬虫 cookie”指的是网络爬虫在访问网站时所使用的cookie,网络爬虫是一种自动化程序,用于在互联网上收集信息并进行索引,这些信息可以用于搜索引擎、数据分析或其他目的。 本教程操作系统:Windows10系统、Dell G3电脑。 “爬虫…...
![](https://img-blog.csdnimg.cn/direct/df32e63d2e0143999b0e1442e038b8c9.jpeg)
Element-UI 入门指南:从安装到自定义主题的详细教程
Element-UI 是一个基于 Vue.js 的前端组件库,它提供了丰富的 UI 组件,可以帮助开发者快速构建高质量的用户界面。以下是使用 Element-UI 的快速入门指南: 安装 Element-UI Element-UI 是一个基于 Vue.js 的组件库,它提供了丰富的…...
![](https://img-blog.csdnimg.cn/direct/30f0ad7f0e4e43c388fba07027cfc845.png)
【busybox记录】【shell指令】unlink
目录 内容来源: 【GUN】【unlink】指令介绍 【busybox】【unlink】指令介绍 【linux】【unlink】指令介绍 使用示例: 删除文件 - 默认 常用组合指令: 指令不常用/组合用法还需继续挖掘: 内容来源: GUN &#x…...
![](https://www.ngui.cc/images/no-images.jpg)
【Go】Swagger v2 转 OpenApi v3 CLI - swag2op
写这个工具的原因,也是受万俊峰老师的启发,他把工作中重复的事情,整合到一个工具,然后开源,这件事很赞。 swag2op 在 【Go】Go Swagger 生成和转 openapi 3.0.3 这篇文档,主要是对 swagger 如何生成&#…...
![](https://www.ngui.cc/images/no-images.jpg)
LeetCode 每日一题 数学篇 2651.计算列车到站时间
给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意,该问题中的时间采用 24 小时制。 int findDelayedArrivalTi…...
![](https://img-blog.csdnimg.cn/direct/00be2652ff40456084132ec07ca07d47.png)
【busybox记录】【shell指令】rmdir
目录 内容来源: 【GUN】【rmdir】指令介绍 【busybox】【rmdir】指令介绍 【linux】【rmdir】指令介绍 使用示例: 删除空目录 - 默认 删除dirname下的所有空目录,包括因删除其他目录而变为空的目录 常用组合指令: 指令不…...
![](https://img-blog.csdnimg.cn/img_convert/4a40d8d7d9ef54d4f04c0c390fa2baf1.png)
转行一年了
关注、星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 来公司一年了。 说是转行其实还是在半导体行业,熟悉我的朋友知道 ,我在18年开始进入半导体行业,那个时候想着行业很重要,站对了…...