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

运行后端SpringBoot项目

目录

一、注册微信开发者账号

1. 注册开发者账号

2. 获取appid和密钥

二、开通腾讯云TRTC服务

1. TRTC业务介绍

2. 为什么不使用阿里云的实时音视频服务,偏要选用腾讯云TRTC服务?

3. 开通TRTC服务

4. 领取TRTC的AppID和密钥

三、导入 emos-api 项目

1. 导入Maven 依赖

2. 修改数据库连接信息

四、运行 emos-wx-api 项目

1. 修改yml文件

2. 运行JAR文件


本项目用到的项目一共有5个,这些项目的具体用途如下:

        ·emos-wx-api:在线办公小程序的后端SpringBoot项目

        ·emos-wx:在线办公小程序的移动端uni-app项目

        ·emos-workflow:在线办公的工作流项目

        ·emos-api:在线办公Web系统的后端SpringBoot项目

        ·emos-vue:在线办公Web系统的前端VUE3.0项目

一、注册微信开发者账号

        因为本项目案例具有跟微信小程序交互的功能(例如扫码登录、支付罚款等),而且emos-wx项目是微信小程序项目,所以想要跑起来本项目的各种子项目,必须要提供微信小程序的appid 和 secret。只要我们正常注册微信开发者账号,就能拿到自己的 appid 和 secret 了。

1. 注册开发者账号

        打开浏览器,访问微信公众平台官网(https://mp.weixin.qq.com/),然后点击右上角的“立即注册”超链接。

        注册的开发者账号类型选择成“小程序”。

2. 获取appid和密钥

        开发 〉开发管理 〉开发设置

二、开通腾讯云TRTC服务

1. TRTC业务介绍

        腾讯实时音视频(TRTC)将腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延迟、高品质的音视频互动解决方案。

【多人音视频通话方案】:依靠腾讯云覆盖全球的专线网络,全球均可互通,提供覆盖手机、桌面全平台的客户端SDK以及云端API,终端用户还可以在微信、QQ、企业微信的小程序中使用TRTC服务,Web网页也可轻松使用。

【低延时互动直播方案】:凭借行业领先的网络与音视频技术,结合腾讯云优质的节点资源,帮助开发者搭建卡顿率更低、延迟1秒内的互动直播,让直播走进CDN2.0时代。

2. 为什么不使用阿里云的实时音视频服务,偏要选用腾讯云TRTC服务?

         因为咱们的在线办公系统,无论是浏览器版本还是小程序版本,都可以进行在线视频会议。其实很多云计算运营商都开放了在线视频会议服务。虽然阿里也有实时音视频服务,但是并不支持微信小程序,所以我们想要在微信小程序上面做在线视频会议,就必须使用腾讯的TRTC服务。包括浏览器端的在线音视频会议,我们使用腾讯云的TRTC服务也能有不错的效果。

        腾讯现在为开发者免费提供10000分钟的流量包,足够我们开发在线会议模块。如果正式上下运营,TRTC音视频流量包也很便宜。

3. 开通TRTC服务

登录腾讯云 〉云产品 〉实时音视频 〉应用管理 〉创建应用

创建应用之后,根据系统提示,领取免费的流量包。

4. 领取TRTC的AppID和密钥

        在 TRTC 〉应用管理 〉快速上手,标题文字旁边的就是AppID,把这个字符串复制下来。在页面中部可以获取TRTC的密钥,把密钥复制下来。

三、导入 emos-api 项目

        上一个小节,我们在本地把工作流项目运行起来了,接下来咱们要去运行Emos工程的后端SpringBoot项目,这个项目在“初始化项目”目录中,把emos-api.zip文件解压缩,然后导入到IDEA里面。

1. 导入Maven 依赖

        导入项目之后,首先要找到 pom.xml 文件,选中文件然后点击鼠标右键,选择“添加为Maven项目”,然后 Maven 就会帮我们初始化 Java 项目。

2. 修改数据库连接信息

打开application.yml文件,把里面的MySQL连接信息改成你本地的。

druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/emos?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=trueusername: rootpassword: abc123456initial-size: 2max-active: 4min-idle: 4

接下来我们还要修改redis和mongodb的连接信息,也是改成你本地的连接信息。

  redis:database: 0host: localhostport: 6379password: abc123456jedis:pool:max-active: 1000max-wait: -1msmax-idle: 16min-idle: 8data:mongodb:host: localhostport: 27017database: emosauthentication-database: adminusername: adminpassword: abc123456

最后你要把自己的TRTC的appid和密钥,以及微信小程序appid和密钥填写到yml文件中。

tencent:trtc:appId: 你自己TRTC的APPIDsecretKey: 你自己TRTC的密钥expire: 86400
wx:app-id: 你自己微信小程序APPIDapp-secret: 你自己微信小程序密钥

        做好了上述的操作,我们先启动MySQL、Redis、MongoDB和RabbitMQ,包括工作流项目也要运行起来,接下来我们运行 EmosApiApplication.java 主类。如果控制台没有报错,说明 emos-api 这个项目已经没有问题了。

        服务器用的 jetty 不是 tomcat。jetty 最大特点 IO 模型是非阻塞的,仅用少量的线程就可以对应大规模的并发请求了。

四、运行 emos-wx-api 项目

        在“项目 〉初始化项目”中存放着 emos-wx-api.zip 文件,你把这个文件下载到本地,解压缩之后会看到 emos-wx-api.jar 和 application.yml 两个文件。

1. 修改yml文件

        修改解压缩出来的 application.yml 文件内容,里面有很多东西要修改。因为 emos-wx-api 项目包含了很多功能,配置这些功能的过程非常繁琐,所以暂且把其中的核心功能配置出来,至于其他的功能后续再说。因为yml文件的内容太多,要修改哪些地方和内容,再听。

2. 运行JAR文件

        必须把 emos-wx-api.jar 和 application.yml 文件放在同一个目录之下,然后执行下面的命令运行JAR文件。

java -jar emos-wx-api.jar --spring.config.location=application.yml

相关文章:

运行后端SpringBoot项目

目录 一、注册微信开发者账号 1. 注册开发者账号 2. 获取appid和密钥 二、开通腾讯云TRTC服务 1. TRTC业务介绍 2. 为什么不使用阿里云的实时音视频服务,偏要选用腾讯云TRTC服务? 3. 开通TRTC服务 4. 领取TRTC的AppID和密钥 三、导入 emos-api …...

#如何对待工作中的失误?# 如何对待工作与生活中的失误——一些不成熟的忠告

关于如何对待工作与生活中的失误的忠告 1.在面对失误而带来的指责和沮丧时,应该如何做?1.1 正确认识失误1.2 处理失误后情绪与问题的途径1.2.1 接受现实,不要否认错误1.2.2 不要过度臆想1.2.3 安排调整情绪的时间1.2.4 向他人寻求帮助 2.发生…...

Shell脚本文本三剑客之awk编辑器

目录 一、awk简介 二、awk工作原理 三、awk命令格式 四、awk命令的使用 1.print操作按行输出文本 2.print操作按字段截取输出文本 3.使用BEGIN和END指定操作 4.使用管道符号,双引号调用shell命令 5.使用操作getline 6.使用操作OFS 7.配合数组使用 一、…...

Focal Loss介绍

目录 前言一. Focal Loss二. 总结 前言 在目标检测算法中,我们会经常遇到Focal Loss这个东西,今天我们就来简单的分下下这个损失。 一. Focal Loss 在深度学习训练的时候,在遇到目标类别不平衡时,如果直接计算损失函数&#xff0…...

【数据结构与算法】04 哈希表 / 散列表 (哈希函数、哈希冲突、链地址法、开放地址法、SHA256)

一种很好用,很高效,又一学就会的数据结构,你确定不看看? 一、哈希表 Hash Table1.1 核心概念1.2 哈希函数 Hash Function1.3 哈希冲突 Hash Collision1.4 哈希冲突解决1.41 方法概述1.42 链地址法 Separate Chaining1.43 开放寻址…...

每日一道面试题之介绍一下Java的序列化和反序列化!

什么是序列化? 序列化是将对象转换为容易传输的格式的过程,它是一种用来处理对象流的机制,将对象的内容流化,从而使流化后的对象传输于网络之间,以便它们可以在网络上传输或在磁盘上存储。反序列化是将序列化后的数据…...

Netty实战(十一)

预置的ChannelHandler和编解码器(一)HTTP和SSL/TLS的添加和使用 一、SSL和TLS添加二、基于Netty的HTTP程序2.1 HTTP解码器、编码器和编解码器2.2 聚合HTTP消息2.3 HTTP压缩 一、SSL和TLS添加 作为一个通讯框架,通讯数据的安全性也是不可或缺的…...

Qos服务质量、心跳机制、保留消息,遗嘱信息,用户密码认证

这里写目录标题 Qos服务质量使用ESP8266接收QoS1的MQTT消息保留消息(retainFlag)心跳机制遗嘱信息 Qos服务质量 若想实现QoS>0,订阅端连接服务端时cleanSession需要设置为false,订阅端订阅主题时QoS>0,发布端发…...

MATLAB 之 线性方程组求解

这里写目录标题 一、线性方程组求解1. 线性方程组的直接解法1.1 利用左除运算符的直接解法1.2 利用矩阵的分解求解线性方程组 2. 线性方程组的迭代解法2.1 Jacobi 迭代法2.2 Gauss-Serdel 迭代法 3. 求线性方程的通解 一、线性方程组求解 在 MATLAB 中,关于线性方程…...

华为OD机试真题 Java 实现【字符串序列判定】【2022Q4 100分】,附详细解题思路

一、题目描述 输入两个字符串a和b,都只包含英文小写字母。a长度<=100,b长度<=500,000。 判定a是否是b的有效子串。 判定规则: a中的每个字符在b中都能找到(可以不连续),且a在b中字符的前后顺序与a中顺序要保持一致。 (例如,a=”qwt”是b=”qwerty”的一个子…...

taro使用小记 —— 持续更新

目录 1、在 taro 中使用 axios2、在 taro 中添加全局组件自动引入和方法自动引入3、在 taro 中使用 pinia 1、在 taro 中使用 axios taro 3.6 版本已经支持了网络请求库。 需安装插件 tarojs/plugin-http 使用和注意事项说明&#xff1a; https://www.npmjs.com/package/taroj…...

【LeetCode】110. 平衡二叉树

110. 平衡二叉树&#xff08;简单&#xff09; 思路 对二叉树做先序遍历&#xff0c;从底至顶返回子树最大高度&#xff0c;若判定某子树不是平衡树则“剪枝”直接向上返回。 递归返回值&#xff1a; 当节点 root 左、右子树的高度差 > 1&#xff1a;返回 -1&#xff0c;代…...

SQL视图、存储过程、触发器

一、视图 &#xff08;一&#xff09;介绍 视图(view&#xff09;是一种虚拟存在的表。视图中的数据并不在数据库中实际存在&#xff0c;行和列数据来自定义视图的查询中使用的表&#xff0c;并且是在使用视图时动态生成的。 通俗的讲&#xff0c;视图只保存了查询的SQL逻辑&…...

DNS隧道穿透

介绍&#xff1a; DNS隧道&#xff0c;是隧道技术中的一种。当我们的HTTP、HTTPS这样的上层协议、正反向端口转发都失败的时候&#xff0c;可以尝试使用DNS隧道。DNS隧道很难防范&#xff0c;因为平时的业务也好&#xff0c;使用也罢&#xff0c;难免会用到DNS协议进行解析&am…...

1.2 Scala变量与数据类型

一、变量声明 &#xff08;一&#xff09;简单说明 Scala中变量的声明使用关键字val和var。val类似Java中的final变量&#xff0c;也就是常量&#xff0c;一旦初始化将不可修改&#xff1b;var类似Java中的非final变量&#xff0c;可以被多次赋值&#xff0c;多次修改。 val - …...

深入探讨软件测试的质量度量指标

本文的目的是介绍项目中使用到主要质量指标&#xff0c;这些质量指标可以分为以下三类&#xff1a; 质量保证过程指标生产事故管理指标度量质量文化指标 质量保证过程指标 质量保证指标可以通过测试覆盖率来度量功能和非功能测试的覆盖率&#xff0c;同时也可以根据测试发现…...

6.12作业

1、pinia和vuex的区别 1.pinia没有mutations&#xff0c;只有state,getters,actions 2.pinia分模块不需要modules (之前vuex分模块需要modules) 3.pinia体积更小(性能更好) 4.pinia可以直接修改state数据 2、Vue2和vue3的响应式原理分别是什么&#x…...

RabbitMQ集群部署之镜像模式

RabbitMQ集群的普通模式中&#xff0c;一旦创建队列的主机宕机&#xff0c;队列就会不可用。不具备高可用能力。如果要解决这个问题&#xff0c;必须使用官方提供的镜像集群方案。 官方文档地址&#xff1a;https://www.rabbitmq.com/ha.html 1.镜像模式的特征 默认情况下&a…...

【算法】Remove Zero Sum Consecutive Nodes from Linked List 从链表中删去总和值为零的连续节点

文章目录 Remove Zero Sum Consecutive Nodes from Linked List 从链表中删去总和值为零的连续节点问题描述&#xff1a;分析代码 Remove Zero Sum Consecutive Nodes from Linked List 从链表中删去总和值为零的连续节点 问题描述&#xff1a; 给你一个链表的头节点 head&am…...

音悦台项目测试报告

文章目录 项目背景项目功能测试计划与设计功能测试自动化测试 测试结果功能测试结果UI自动化测试结果 项目背景 现如今人们的生活压力大&#xff0c;容易使人疲惫&#xff0c;为了使得人们在闲暇之余可以听音乐放松&#xff0c;为此设计出一款轻量的听音乐网站&#xff0c;快速…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...