首页 > 其他分享 >BladeX开发入门(记录)

BladeX开发入门(记录)

时间:2024-09-26 15:50:07浏览次数:1  
标签:__ java 入门 记录 blade BladeX mysql docker 安装

BladeX 物联网平台是一款高度集成的物联网解决方案,涵盖设备管理、数据采集、实时监控、数据分析以及开放API服务等核心功能。

平台经过精心设计与开发,提供了全面的品类、产品和设备支持。设备注册成功后,能够轻松桥接至其他物联网云平台,实现设备的无缝集成。

同时提供服务端订阅功能,支持MQTT与AMQP两者方式将设备数据订阅转发至自建服务端,实现设备数据的自定义监控与分析。

官方环境要求

基础开发环境

  • Java: 17
  • NodeJs: 18
  • Maven: 3.6+
  • MySql: 5.7+
  • Redis: 5.0+
  • InfluxDB: 1.8.x+

IDE插件

  • Lombok Plugin (必装)
  • MybatisX Plugin (idea选装)

推荐IDE

  • 后端使用 IntelliJ IDEA
  • 前端使用 IntelliJ WebStorm

本机测试环境

操作系统:Windows 10

IDE使用:IntelliJ IDEA

前端使用:VSCODE

一、环境准备

1 下载安装JDK17

下载openjdk17,前往下载地址找到符合自己机器的版本并安装配置环境变量,三种推荐版本选其一或公司选型的Jdk均可

 选择Azul Zulu,找到windows版本进行下载:

下载zip版本,加压缩,验证版本信息:

定位到<installation_folder>\bin目录,执行:java -version

 (可选)添加<installation_folder>\bin到您的PATH系统变量,以便您可以java从任何目录执行而无需指定完整路径:

我的电脑->属性->高级系统设置->环境变量->系统变量->Path->编辑

在打开的对话框中,添加bin文件夹路径(Azul Zulu 安装文件.zip文件解压到的目录)。

注意:确保bin文件夹位于列表顶部(避免多个jdk版本导致不生效)

 

 

2 安装Maven

由于电脑已经安装3.9.4版本,略过:

 

3 NodeJs

由于电脑已经安装18.16.0,略过:

 

4 安装MySQL(用docker可不安装)

(1) 下载

下载地址:https://dev.mysql.com/downloads/mysql/

默认是最新版本,可以选择下载msi或者zip:

 由于环境要求是5.7+,最后选择5.7版本的最新版本(根据网上的建议)

切换到档案Archives,选择5.7.44版本:

解压缩到目录下(my.ini是新建的,详见下文)

 (2) 配置

配置环境变量:将MySQL安装路径下的bin目录配置到Path变量中

Path添加:D:\Program Files\mysql\mysql-5.7.44-winx64\bin

在【安装目录】内,新建 my.ini 空文件,添加以下内容(替换【安装目录】):

[mysql]  
# 设置 mysql 客户端默认字符集  
default-character-set=utf8  

[mysqld]  
#设置 3306 端口  
port = 3306  

# 设置 mysql 的安装目录  
basedir= 【安装目录】

# 设置 mysql 数据库的数据的存放目录  
datadir= 【安装目录】\data  

# 允许最大连接数  
max_connections=200  

# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集  
character-set-server=utf8  

# 创建新表时将使用的默认存储引擎  
default-storage-engine=INNODB

如下:

(3) 安装

以管理员身份运行cmd,进入到MySQL的bin目录,执行初始化命令:

mysqld --initialize --user=mysql --console

 该命令用来初始化数据,在5.7以前的版本是不需要执行该命令的。初始化完成后会提供一个临时的root密码,如下图红色方框,记下该密码:0uNDD&/lq<Tr

再执行如下命令进行MySQL服务安装:

mysqld –install mysql

mysql为默认的服务名,可不写,若安装成功则有如下提示:

 需要注意的是一定要以管理员身份运行cmd,否则会出现如下图所示提示:

(4) 启动

 启动服务

net start mysql

 当出现如下图所示提示时表示MySQL安装并启动成功。

MySQL5.7以前的版本在安装时不需要执行第四步中的mysqld –initialize命令,

5.7版本如果漏掉该命令后在此步骤会出现如下错误:

 因为该版本的压缩包里面有些文件和文件夹(如data文件夹)需要在执行mysqld -initialize命令后才创建。

(5) 登录

mysql -u root -p

提示输入密码,输入前面安装的时候记录下的密码,按回车后出现如下页面表示登录成功,并进入了MySQL命令行模式。

(6) 修改密码

ALTER USER ‘root’@’localhost’  IDENTIFIED BY ‘new_password’

 修改成功会提示:Query OK, 0 rows affected (0.00 sec)

注意:sql命令要以分号结束,如果第一次没有结束,第二行再次执行还是会报错,分号结束后再执行就正常了,如上图所示。

如果没有修改密码就执行其它的SQL命令,则会提示如下错误:

(7) 操作数据库

安装和启动已经完成后,可输入下列语句,显示已有数据库:

show databases;

 退出命令行模式,可输入以下任一一个命令:

exit
quit
\q

停止数据库服务,输入:

net stop mysql

 

5 Redis(用docker可不安装)

参考文档:https://blog.csdn.net/ljj20161221/article/details/135134670

Window下Redis的安装和部署详细图文教程(包含Redis Desktop Manage安装和使用):https://www.jb51.net/database/320870vp2.htm

 

6 安装Docker

使用docker挂在mysql、redis、influxdb,宿主机器可无需安装mysql、redis

下载地址:https://docs.docker.com/desktop/install/windows-install/

下载完后按照默认安装好,修改 docker desktop 配置

 1)开启WSL 2运行Docker,正常是默认开启的

 2)修改资源存储目录:

 3)配置国内镜像源,可以添加多个,json格式

"registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "http://hub-mirror.c.163.com",
    "https://registry.docker-cn.com"
  ]

 具体可参考:https://blog.csdn.net/mst_sun/article/details/135087651

二、Bladex物联网平台工程运行

1、中间件运行

根据需要先创建挂载目录:

 注:以下命令在命令行中执行,为避免出现其他问题,建议以管理员身份运行

docker启动mysql并挂载文件(关闭大小写敏感)

docker run ^
  --name mysql -d -p 13306:3306 ^
  -v D:\develop\docker\data\mysql\data:/var/lib/mysql ^
  -v D:\develop\docker\data\mysql\conf:/etc/mysql/conf.d ^
  -e MYSQL_ROOT_PASSWORD=mysql123456 ^
  --privileged=true ^
  mysql:5.7.44 ^
  --lower_case_table_names=1

  注意:

  • 运行前先创建好目录:D:\develop\docker\data\mysql\data和D:\develop\docker\data\mysql\conf
  • 因本机安装了mysql,端口3306被占用,改用了13306
  • Windows下换行用^;Linux底下换行用\

创建数据库并导入sql:

  • 服务启动成功后打开数据库,创建数据库名bladex_iot(字符集采用utf8mb4)
  • 导入BladeX-Links工程根目录下/doc/sql文件夹的bladex.mysql.iot.create.sql文件与bladex.mysql.sys.create.sql

  以navicat为例,新建完后右键运行SQL文件,然后找到指定文件运行即可。  

  

docker启动redis(注意生产环境必须关闭端口映射并且设置密码)

docker run --name redis -d -p 6379:6379 -v D:\develop\docker\data\redis\data:/data redis:7.2.4

  注:开发环境就没设置密码了

docker启动influxdb并挂载数据

docker run -d --name influxdb ^
  -p 8086:8086 ^
  -v D:\develop\docker\data\influxdb:/var/lib/influxdb ^
  -e INFLUXDB_DB=links ^
  -e INFLUXDB_HTTP_AUTH_ENABLED=true ^
  -e INFLUXDB_ADMIN_USER=admin ^
  -e INFLUXDB_ADMIN_PASSWORD=links ^
  influxdb:1.8.10

可以在docker中看到启动情况:

2、 后端运行

(1)获取BladeX-Links代码,使用IDEA打开工程,点击maven刷新按钮下载依赖

(2)修改配置前先获取秘钥:

bladex-links\blade-server\src\test\java\org\springblade\test\Sm2KeyGenerator.java

bladex-links\blade-server\src\test\java\org\springblade\test\SignKeyGenerator.java

 右键运行:

 在输出中可以看到public-key和private-key

 sign-key和aes-key:

(3)修改BladeX-Links工程下的blade-server配置

修改application.yml配置文件,修改密钥保持与blade-broker一致

bladex-links\blade-server\src\main\resources\application.yml:

blade-server的端口号默认是80,根据实际情况选择是否修改(测试因80端口被占用,改用8099端口):

 

修改application-dev.yml配置文件,修改数据库、redis、influxdb、minio等配置

bladex-links\blade-server\src\main\resources\application-dev.yml:端口密码等配置信息根据自己安装时候的实际情况修改

 

(4)修改BladeX-Links工程下的blade-broker配置

修改application.yml配置文件,修改密钥保持与blade-server一致

bladex-links\blade-broker\src\main\resources\application.yml:

修改application-dev.yml配置文件,修改数据库、redis、influxdb、minio等配置

bladex-links\blade-broker\src\main\resources\application-dev.yml:

(5)启动服务端

启动BladeX-Links工程下的blade-broker模块的BrokerApplication启动类,看到如下日志,则说明启动成功

   ____  _           _     __   __    _     _       _
  |  _ \| |         | |    \ \ / /   | |   (_)     | |
  | |_) | | __ _  __| | ___ \ V /    | |    _ _ __ | | _____
  |  _ <| |/ _` |/ _` |/ _ \ > <     | |   | | '_ \| |/ / __|
  | |_) | | (_| | (_| |  __// . \    | |___| | | | |   <\__ \
  |____/|_|\__,_|\__,_|\___/_/ \_\   |_____|_|_| |_|_|\_\___/


:: SpringBlade :: blade-broker:dev :: Running SpringBoot 3.2.4 :: 

2024-06-03 00:26:26.238  INFO 21536 --- [kground-preinit] o.h.validator.internal.util.Version      : HV000001: Hibernate Validator 8.0.1.Final
2024-06-03 00:26:26.265  INFO 21536 --- [           main] o.s.mqtt.broker.BrokerApplication        : Starting BrokerApplication using Java 17.0.10 with PID 21536 (/Users/chill/Workspaces/product/BladeX-IOT/blade-broker/target/classes started by chill in /Users/chill/Workspaces/product/BladeX-IOT)
2024-06-03 00:26:26.265 DEBUG 21536 --- [           main] o.s.mqtt.broker.BrokerApplication        : Running with Spring Boot v3.2.4, Spring v6.1.5
2024-06-03 00:26:26.266  INFO 21536 --- [           main] o.s.mqtt.broker.BrokerApplication        : The following 1 profile is active: "dev"
2024-06-03 00:26:26.887  INFO 21536 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2024-06-03 00:26:26.888  INFO 21536 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2024-06-03 00:26:26.904  INFO 21536 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 9 ms. Found 0 Redis repository interfaces.
2024-06-03 00:26:26.956  WARN 21536 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : Skipping MapperFactoryBean with name 'mqttAccountMapper' and 'org.springblade.mqtt.broker.auth.mapper.MqttAccountMapper' mapperInterface. Bean already defined with the same name!
2024-06-03 00:26:26.956  WARN 21536 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : Skipping MapperFactoryBean with name 'mqttAuthLogMapper' and 'org.springblade.mqtt.broker.auth.mapper.MqttAuthLogMapper' mapperInterface. Bean already defined with the same name!
2024-06-03 00:26:26.957  WARN 21536 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : Skipping MapperFactoryBean with name 'deviceMapper' and 'org.springblade.mqtt.broker.device.mapper.DeviceMapper' mapperInterface. Bean already defined with the same name!
2024-06-03 00:26:26.998  INFO 21536 --- [           main] s.c.l.p.BladePropertySourcePostProcessor : BladePropertySourcePostProcessor init.
2024-06-03 00:26:27.021  INFO 21536 --- [           main] s.c.l.p.BladePropertySourcePostProcessor : BladePropertySourcePostProcessor process @BladePropertySource bean.
2024-06-03 00:26:27.336  WARN 21536 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2024-06-03 00:26:27.343  INFO 21536 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
2024-06-03 00:26:27.343  INFO 21536 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1057 ms
2024-06-03 00:26:27.503  INFO 21536 --- [           main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2024-06-03 00:26:27.541  INFO 21536 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
2024-06-03 00:26:28.647  INFO 21536 --- [           main] n.d.i.m.core.server.MqttServerCreator    : Mica mqtt http api enable:false websocket enable:true
2024-06-03 00:26:29.059  INFO 21536 --- [           main] o.s.core.boot.config.RetryConfiguration  : configServerRetryInterceptor: Changing backOffOptions to initial: 1000, multiplier: 1.2, maxInterval: 5000
2024-06-03 00:26:29.072  INFO 21536 --- [           main] o.s.core.log.logger.BladeLogger          : blade-broker: BladeLogger init success!
2024-06-03 00:26:29.459  INFO 21536 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2024-06-03 00:26:29.633  INFO 21536 --- [           main] io.undertow                              : starting server: Undertow - 2.3.12.Final
2024-06-03 00:26:29.636  INFO 21536 --- [           main] org.xnio                                 : XNIO version 3.8.8.Final
2024-06-03 00:26:29.640  INFO 21536 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.8.Final
2024-06-03 00:26:29.651  INFO 21536 --- [           main] org.jboss.threads                        : JBoss Threads version 3.5.0.Final
2024-06-03 00:26:29.668  INFO 21536 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port 8888 (http)
2024-06-03 00:26:29.670  INFO 21536 --- [       Thread-1] org.tio.utils.timer.TimingWheelThread    : Starting
2024-06-03 00:26:29.670  INFO 21536 --- [sync-executor-1] o.s.core.launch.StartEventListener       : ---[BLADE-BROKER]---启动完成,当前使用的端口:[8888],环境变量:[dev]---
2024-06-03 00:26:29.672  INFO 21536 --- [           main] org.tio.server.TioServer                 : 
|----------------------------------------------------------------------------------------|
| TioConfig name    | BladeX-Mqtt-Server                                                 |
| Mica net version  | 1.0.0                                                              |
| Started at        | 2024-06-03 00:26:29                                                |
| Listen on         | 0.0.0.0:1883                                                       |
| Main Class        | org.springblade.mqtt.broker.BrokerApplication                      |
| Jvm start time    | 4318ms                                                             |
| Tio start time    | 2ms                                                                |
| Pid               | 21536                                                              |
|----------------------------------------------------------------------------------------|

2024-06-03 00:26:29.673  INFO 21536 --- [           main] org.tio.server.TioServer                 : 
|----------------------------------------------------------------------------------------|
| TioConfig name    | BladeX-Mqtt-Server-HTTP/Websocket                                  |
| Mica net version  | 1.0.0                                                              |
| Started at        | 2024-06-03 00:26:29                                                |
| Listen on         | 0.0.0.0:8083                                                       |
| Main Class        | org.springblade.mqtt.broker.BrokerApplication                      |
| Jvm start time    | 4319ms                                                             |
| Tio start time    | 1ms                                                                |
| Pid               | 21536                                                              |
|----------------------------------------------------------------------------------------|

2024-06-03 00:26:29.684  INFO 21536 --- [           main] o.s.mqtt.broker.BrokerApplication        : Started BrokerApplication in 3.669 seconds (process running for 4.348)
2024-06-03 00:26:29.957  INFO 21536 --- [-192.168.31.254] io.undertow.servlet                      : Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-06-03 00:26:29.958  INFO 21536 --- [-192.168.31.254] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2024-06-03 00:26:29.958  INFO 21536 --- [-192.168.31.254] o.s.web.servlet.DispatcherServlet        : Completed initialization in 0 ms

 

启动BladeX-Links工程下的blade-server模块的ServerApplication启动类 ,看到如下日志,则说明启动成功

   ____  _           _     __   __    _     _       _
  |  _ \| |         | |    \ \ / /   | |   (_)     | |
  | |_) | | __ _  __| | ___ \ V /    | |    _ _ __ | | _____
  |  _ <| |/ _` |/ _` |/ _ \ > <     | |   | | '_ \| |/ / __|
  | |_) | | (_| | (_| |  __// . \    | |___| | | | |   <\__ \
  |____/|_|\__,_|\__,_|\___/_/ \_\   |_____|_|_| |_|_|\_\___/


:: SpringBlade :: blade-server:dev :: Running SpringBoot 3.2.4 :: 

2024-06-03 00:26:26.462  INFO 21541 --- [kground-preinit] o.h.validator.internal.util.Version      : HV000001: Hibernate Validator 8.0.1.Final
2024-06-03 00:26:26.493  INFO 21541 --- [           main] org.springblade.ServerApplication        : Starting ServerApplication using Java 17.0.10 with PID 21541 (/Users/chill/Workspaces/product/BladeX-IOT/blade-server/target/classes started by chill in /Users/chill/Workspaces/product/BladeX-IOT)
2024-06-03 00:26:26.493 DEBUG 21541 --- [           main] org.springblade.ServerApplication        : Running with Spring Boot v3.2.4, Spring v6.1.5
2024-06-03 00:26:26.493  INFO 21541 --- [           main] org.springblade.ServerApplication        : The following 1 profile is active: "dev"
2024-06-03 00:26:27.153  INFO 21541 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2024-06-03 00:26:27.154  INFO 21541 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2024-06-03 00:26:27.192  INFO 21541 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 32 ms. Found 0 Redis repository interfaces.
2024-06-03 00:26:27.237  WARN 21541 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : No MyBatis mapper was found in '[org.springblade]' package. Please check your configuration.
2024-06-03 00:26:27.298  INFO 21541 --- [           main] s.c.l.p.BladePropertySourcePostProcessor : BladePropertySourcePostProcessor init.
2024-06-03 00:26:27.320  INFO 21541 --- [           main] s.c.l.p.BladePropertySourcePostProcessor : BladePropertySourcePostProcessor process @BladePropertySource bean.
2024-06-03 00:26:27.637  WARN 21541 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2024-06-03 00:26:27.643  INFO 21541 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
2024-06-03 00:26:27.643  INFO 21541 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1133 ms
2024-06-03 00:26:27.813  INFO 21541 --- [           main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2024-06-03 00:26:27.847  INFO 21541 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
2024-06-03 00:26:30.954  INFO 21541 --- [           main] o.s.core.boot.config.RetryConfiguration  : configServerRetryInterceptor: Changing backOffOptions to initial: 1000, multiplier: 1.2, maxInterval: 5000
2024-06-03 00:26:30.962  INFO 21541 --- [           main] o.s.core.log.logger.BladeLogger          : blade-server: BladeLogger init success!
2024-06-03 00:26:31.395  INFO 21541 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2024-06-03 00:26:31.866  INFO 21541 --- [           main] io.undertow                              : starting server: Undertow - 2.3.12.Final
2024-06-03 00:26:31.869  INFO 21541 --- [           main] org.xnio                                 : XNIO version 3.8.8.Final
2024-06-03 00:26:31.872  INFO 21541 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.8.Final
2024-06-03 00:26:31.882  INFO 21541 --- [           main] org.jboss.threads                        : JBoss Threads version 3.5.0.Final
2024-06-03 00:26:31.899  INFO 21541 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port 80 (http)
2024-06-03 00:26:31.901  INFO 21541 --- [sync-executor-1] o.s.core.launch.StartEventListener       : ---[BLADE-SERVER]---启动完成,当前使用的端口:[80],环境变量:[dev]---
2024-06-03 00:26:31.910  INFO 21541 --- [           main] org.springblade.ServerApplication        : Started ServerApplication in 5.638 seconds (process running for 5.923)
2024-06-03 00:26:32.271  INFO 21541 --- [-192.168.31.254] io.undertow.servlet                      : Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-06-03 00:26:32.271  INFO 21541 --- [-192.168.31.254] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2024-06-03 00:26:32.273  INFO 21541 --- [-192.168.31.254] o.s.web.servlet.DispatcherServlet        : Completed initialization in 2 ms

 

注意: 

  • 由于采用Java17,Java 模块化系统(Java Module System)的安全限制导致的针对反射等场景有可能会出现如下错误:
    • Cause: java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module @223aa2f7
    • 解决方案:在启动参数中添加--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED

       

3、 前端运行

获取前端代码bladex-links-ui,根据自己的习惯选择IDE打开(本人使用VSCODE)。

修改website.js配置文件,bladex-links-ui\src\config\website.js(需要和后端保持一致):

blade-server默认为80端口,如果不是80端口,请修改vite.config.mjs中的proxy配置:

 然后再终端执行启动web端:

npm install
npm run dev

 

最终运行成功页面:

默认用户密码登录后:

 

<本文完>

 

 

标签:__,java,入门,记录,blade,BladeX,mysql,docker,安装
From: https://www.cnblogs.com/kk8085/p/18330133

相关文章

  • RabbitMq 入门应用 提升性能 : 算法多阶段并行 (Python)
    大问题:我们有一个算法,它可以被分为多个阶段进行(顺序不可颠倒),每个阶段的性能和资源要求不同(且不均衡程度比较高);假设我们现在可以堆资源(较多的CPU和内存),如何将算法各个步骤拆分并进行性能均衡和实现,使得算法性能最大化以满足生产要求?多进程:由于算法有严格的顺序要求,如果是......
  • MyBatis-Plus的使用基础入门案例
    目录文章目录目录简介特性框架结构第一个案例准备工作初始化工程添加依赖完整的pom配置编写实体类编写Mapper修改启动类--扫描Mapper测试运行简介MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生......
  • go语言学习入门
    packagemain是什么packagemain是Go语言程序的包声明,表示该文件属于主包。主包是Go程序的入口点,包含一个名为main的函数。这个函数是程序启动时首先执行的代码。每个可执行的Go程序都需要有一个main包和main函数。packagemainimport"fmt"funcmain(){fmt.P......
  • 安全:snoopy: 只能记录root的操作命令
    一,问题现象:1,一台新服务器上安装了snoopy之后,发现一个问题,它只能记录root的操作命令,其他用户的操作命令完全记录不下来2,查看配置:[root@backup~]#snoopyctlconf;Optionsfromconfigfile(ordefaults):/etc/snoopy.ini[snoopy]error_logging=yesfilter_chain=e......
  • VN9D DataSheet 阅读记录
    简介VN9D30是一个高边外设,有6个channel,使用24路SPI进行通信,用于汽车领域。Generaldeepcoldcrankingapplications(指深冷启动应用场景)IntegratedPWMenginewithindependentphaseshiftandfrequencygeneration(foreachchannel)IntegratedPWMengine:指的......
  • Spring Boot入门到精通:网上购物商城系统
    第3章系统分析3.1可行性分析在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。3.1.1技术可行性本基于SpringBo......
  • ‌华为手机记录密码后页面显示的用户名可以通过修改设置来隐藏
    1、打开手机主页面,进入【手机设置】。2、在设置界面中,找到并选择【安全】菜单。 3、进入“密码保险箱”。 4、进入 “管理应用自动填充” 5、关闭保存和自动填充  ......
  • docker部署jumpserver及入门
    一、环境及要求环境:CentOSLinux7.9jumpserverv2.28.6要求LinuxKernel:>=4.0 MySQL:>=5.7#官方使用MariaDB10.6对照MySQL8.0Redis:>=5.0#不支持cluster模式官方使用Redis6.2SoftRequirement:wgetcurltargettextiptablespythone二、依赖安装1.MySQL......
  • RabbitMQ(兔子队列入门/消息队列)
    介绍(本笔记不涉及RabbitMQ的环境搭建,主要用于了解和上手使用RabbitMQ)RabbitMQ是一种消息队列,什么是消息队列?消息(Message):是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。**队列:**可以说是一个数据结构,可以存储数据,如下图,我们从右侧(队......
  • 华为校园招聘三轮面试记录:通用软件开发
      本文介绍2024届秋招中,华为技术有限公司的通用软件开发工程师岗位的3场面试基本情况、提问问题等。  2023年07月投递了华为技术有限公司的通用软件开发工程师岗位,所在部门为海思半导体与器件业务部。目前完成了一面、二面与三面等全部流程,在这里记录一下3场面试的经历。此外,......