Jeesite 4.0 学习笔记

Jeesite简介

Jeesite是一个 Java EE 企业级快速开发平台。
框架:SpringBoot + SpringMVC + Apache Shiro + MyBatis + Beetl(模板) + Boostrap + AdminLTE(UI)
核心模块:组织机构、角色用户、菜单及按钮授权、数据授权、系统参数等。
技术选型:见官方文档。

环境配置

Java 1.8 环境配置
maven 环境配置
mysql 环境配置

eclipse安装与配置

详见 eclipse使用笔记 文档

快速开始、环境搭建、修改包名、新建模块、正式部署 | JeeSite 快速开发平台)

Jeesite 文件结构与配置

一、聚合工程

SpringBoot是java领域微服务架构最优落地技术,springboot + MongoDB 方案是在微服务架构下数据治理的最佳方案之一

jeesite分层模式

<span style="color:#000000"><code class="language-css"><span style="color:#2b91af">[ 表现层:com.jeesite.modules.*.web     ]</span><span style="color:#2b91af">[ 业务层:com.jeesite.modules.*.service ]</span><span style="color:#2b91af">[ Database ]</span><span style="color:#2b91af">[ 持久层:com.jeesite.modules.*.dao     ]</span><span style="color:#2b91af">[ 实体层:com.jeesite.modules.*.entity  ]</span>
</code></span>

发布部署

<span style="color:#000000"><code class="language-markdown">从⚪ ————> 负载均衡服务器 ————> 一系列tomcat高并发	(Cluster)<span style="color:#397300">								  DataBase...
到
</span>
分布式架构
</code></span>

分布式架构例图

什么是聚合工程?

......

二、模块间依赖关系

三、配置文件

spring boot 默认大于配置(doge)

四、文件结构

具体的目录和用途可查看官方文档:
目录结构介绍、快速了解每个文件目录包的意图 - JeeSite 4.x

IDEA:从项目导入到模块创建

// 本例清空了之前的项目数据和项目部署下载的maven仓库

一、项目导入

step 01:打开项目

open打开项目,按照提示import,trust project

注意,maven若非缺省,需要在 settings... 和 new projects settings 中都作修改

step 02:查看项目目录

查看项目目录,多数文件夹带有蓝色小方块,即maven项目导入成功的标志

step 03:打开主启动类

打开 web 工程下主启动类,发现大量报红

step 04:maven依赖配置

由大量试错踩坑分析得出结论,是由maven依赖导入冲突和失败引起的
右侧工具栏调出maven,进行reload

打开 web 下pom文件,将eclipse插件注释掉,防止idea不需要的插件报错出现幺蛾子

maven工具栏找到 Jeesite的root模块,依次进行clean和install,过程较长,耐心等待哦

加载结束后,reload一下

主启动类不报红了,泪目了家人们!

// 补充:如果还是不行,可以试着再depoly一下或者到别的模块进行同样的操作;
秘诀就是对着maven工具栏疯狂clean、install和reload......

step 05:数据库连接和配置

先去powershell (管理员),net start mysql一下,启动mysql
mysql服务启动成功后,到 web \ src \ main \ resource \ application.yml 文件进行数据库配置

然后启动web \ bin \ init-data.sh ,进行数据初始化,过程较长,去喝口茶,初始化完毕~

数据初始化相关说明
需要注意的是,
01 数据库初始化时,更改my.ini配置文件可能出现报错,导致mysql服务无法再次启动,此处提供重新安装mysql一种解决办法
02 官方提供的数据库授权语句等语法对于mysql 8.0 版本不一定适用,需要自行更改
03 不要直接cv,先cv到记事本中,再cv到powershell中,避免中英文的全角半角问题

step 06:启动项目

启动项目,验证项目部署是不是成功了(肯定成功了!)
打开登录网址 http://127.0.0.1:8980/js

成功了,快乐!

二、创建新模块

step 07:数据库准备

第一步:创建数据表

只能说可视化建表确实不如直接敲sql语句方便

<span style="color:#000000"><code class="language-sql"><span style="color:#0000ff">create</span> <span style="color:#0000ff">table</span> book_catalogue(id <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>) <span style="color:#0000ff">primary</span> key,book_id <span style="color:#a31515">int</span>(<span style="color:#880000">64</span>) <span style="color:#0000ff">not</span> <span style="color:#0000ff">null</span>,book_name <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>),book_author <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>),book_label <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>),status <span style="color:#a31515">char</span>(<span style="color:#880000">1</span>),create_by <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>),create_date datetime,update_by <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>),update_date datetime,remarks nvarchar(<span style="color:#880000">500</span>)
);
</code></span>

第二步:向新表中插入数据

<span style="color:#000000"><code class="language-sql"><span style="color:#0000ff">insert</span> <span style="color:#0000ff">into</span> book_catalogue(id,book_id,book_name,book_author,book_label
)<span style="color:#0000ff">values</span>("2191320001",<span style="color:#880000">1</span>,"瓦尔登湖","梭罗","哲学"
);
<span style="color:#0000ff">insert</span> <span style="color:#0000ff">into</span> book_catalogue(id,book_id,book_name,book_author,book_label
)<span style="color:#0000ff">values</span>("2191320002",<span style="color:#880000">2</span>,"围城","钱钟书","小说"
);
<span style="color:#0000ff">insert</span> <span style="color:#0000ff">into</span> book_catalogue(id,book_id,book_name,book_author,book_label
)<span style="color:#0000ff">values</span>("2191320003",<span style="color:#880000">3</span>,"中国哲学简史","冯友兰","哲学"
);
<span style="color:#0000ff">insert</span> <span style="color:#0000ff">into</span> book_catalogue(id,book_id,book_name,book_author,book_label
)<span style="color:#0000ff">values</span>("2191320004",<span style="color:#880000">4</span>,"资治通鉴","司马光","历史"
);
<span style="color:#0000ff">insert</span> <span style="color:#0000ff">into</span> book_catalogue(id,book_id,book_name,book_author,book_label
)<span style="color:#0000ff">values</span>("2191320005",<span style="color:#880000">5</span>,"庄子","庄子","人生"
);
<span style="color:#0000ff">insert</span> <span style="color:#0000ff">into</span> book_catalogue(id,book_id,book_name,book_author,book_label
)<span style="color:#0000ff">values</span>("2191320006",<span style="color:#880000">6</span>,"活着","余华","小说"
);
</code></span>

在Navicat中查看,插入成功咯!

附录:建表和插入数据的语法模板

创建数据表

<span style="color:#000000"><code class="language-sql"><span style="color:#0000ff">create</span> <span style="color:#0000ff">table</span> table_name(id <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>) <span style="color:#0000ff">primary</span> key,#推荐添加: table_id <span style="color:#a31515">int</span>(<span style="color:#880000">64</span>) <span style="color:#0000ff">not</span> <span style="color:#0000ff">null</span>,## 添加自己的属性status <span style="color:#a31515">char</span>(<span style="color:#880000">1</span>),#状态(<span style="color:#880000">0</span>正常 <span style="color:#880000">1</span>删除 <span style="color:#880000">2</span>停用 <span style="color:#880000">3</span>冻结 <span style="color:#880000">4</span>审核 <span style="color:#880000">5</span>驳回 <span style="color:#880000">9</span>草稿)create_by <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>), #创建者create_date datetime, #创建时间update_by <span style="color:#a31515">varchar</span>(<span style="color:#880000">64</span>), #更新者update_date datetime, #更新时间remarks nvarchar(<span style="color:#880000">500</span>) #备注
);
</code></span>

插入数据

<span style="color:#000000"><code class="language-sql"><span style="color:#0000ff">insert</span> <span style="color:#0000ff">into</span> book_catalogue(id,book_id,book_name,book_author,book_label
)<span style="color:#0000ff">values</span>("2191320001",<span style="color:#880000">1</span>,"围城","钱钟书","小说"
);
</code></span>

step 08:创建新模块

在Jeesite界面创建新模块生成代码

到 系统管理\研发工具\代码生成工具 下,点击新增

选择之前创建的数据表(而且如果能看到这张表也验证了数据库连接是没有问题滴)

按照提示填入相关信息

默认生成即可,有特殊需求可以自行更改


统一的生成包路径按缺省即可
生成基础路径需要改到 modules\模块名 下,方便以后的模块管理
(改为web工程的同级目录modules下以模块名命名的文件夹中,本次示例中为 ...\modules\book)

点击保存并生成代码

出现绿绿的提示信息,大成功了属于是,那么去哪里查看呢
点击界面如图所示图标,进行菜单创建,按照提示信息输入菜单名称和权限等就可以辣~

去康康新建的菜单吧

发现找不到,为什么呢?
来到了另一个高血压级别的bug.......

又去看了看官方指导文档
哦!原来是module没有声明引入啊

在root下pom文件添加如图语句

<span style="color:#000000"><code class="language-xml"><span style="color:#0000ff"><<span style="color:#0000ff">module</span>></span>../modules/module_name<span style="color:#0000ff"></<span style="color:#0000ff">module</span>></span>
</code></span>

在web下pom文件,添加如图依赖

<span style="color:#000000"><code class="language-dockerfile"><span style="color:#0000ff">copy</span>一下核心模块的代码,然后改个名字,再<span style="color:#0000ff">paste</span>一下就好辣
</code></span>

当然,梦幻般地报红了(啊这)
通过笔者积极地重复试验、探索和瞎搞,终于发现,
原来是idea根本就没有把我们添加的book模块作为maven module识别到(你看book上都没有蓝色小方块),
我们需要给它加一个pom文件

打开 modules\temlate\pom,xml ,copy下来,
然后在book文件夹上右键,建立一个新File,命名为pom.xml,
将之前copy的内容paste到该book下的pom文件中,将下图所示位置改为我们的模块名book

在maven工具栏中reload一下,发现我们新建的book模块也拥有了梦寐以求的蓝色小方块

热更新一下项目,去Jeesite菜单界面看看吧

???我的数据呢?我的数据呢?
不过,既然出现属性栏,说明模块已经成功添加了
我们试着新增一行数据,看看出现什么问题了
点击新增,填入数据后,打开Nacivat,发现我们新增的一行(id很奇怪的那一行),status是0,于是我们给它们都改成0

再看一下

大!胜!利!好耶!

补充:手动创建

如果想手动创建一个新的模块,可以参考以下方法:
注意,
本项目整体为一个maven project,当我们创建新模块时,选择maven module
创建时,create from archetype 可以用来创建maven module的模板,如无需要可以不必勾选
step 01 创建
File ——> New ——> Module ——> 选择maven ——>选择SDK ——>
是否勾选 create from archetype ——> 选择parent ——> 输入name ——>
设置Location,选择jeesite-web目录下modules文件夹路径,然后在该目录下添加新模块同名文件夹 ——>
创建完成
step 02 配置
在 new module 的pom文件中添加以下依赖

<span style="color:#000000"><code class="language-xml">		<span style="color:#008000"><!-- 核心模块 --></span><span style="color:#0000ff"><<span style="color:#0000ff">dependency</span>></span><span style="color:#0000ff"><<span style="color:#0000ff">groupId</span>></span>com.jeesite<span style="color:#0000ff"></<span style="color:#0000ff">groupId</span>></span><span style="color:#0000ff"><<span style="color:#0000ff">artifactId</span>></span>jeesite-module-core<span style="color:#0000ff"></<span style="color:#0000ff">artifactId</span>></span><span style="color:#0000ff"><<span style="color:#0000ff">version</span>></span>${project.parent.version}<span style="color:#0000ff"></<span style="color:#0000ff">version</span>></span><span style="color:#0000ff"></<span style="color:#0000ff">dependency</span>></span>
</code></span>

参考自官方文档:快速开始、环境搭建、修改包名、新建模块、正式部署 - JeeSite 4.x快速开始、环境搭建、修改包名、新建模块、正式部署 | JeeSite 快速开发平台)

以图书管理目录为例的数据流转分析

新增功能

views \ modules \ book \ bookCatalogueList.html

<span style="color:#000000"><code class="language-html language-xml">[11]
<span style="color:#0000ff"><<span style="color:#0000ff">a</span> <span style="color:#ff0000">href</span>=<span style="color:#a31515">"${ctx}/book/bookCatalogue/form"</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"btn btn-default btnTool"</span> <span style="color:#ff0000">title</span>=<span style="color:#a31515">"${text('新增book_catalogue')}"</span>></span><span style="color:#0000ff"><<span style="color:#0000ff">i</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"fa fa-plus"</span>></span><span style="color:#0000ff"></<span style="color:#0000ff">i</span>></span> ${text('新增')}<span style="color:#0000ff"></<span style="color:#0000ff">a</span>></span></code></span>

step 01 点击此处【新增】按钮跳转到表单页面

views \ modules \ book \ bookCatalogueForm.html

<span style="color:#000000"><code class="language-html language-xml"><span style="color:#008000"><!--form标签内--></span>
[29]
<span style="color:#0000ff"><<span style="color:#0000ff">span</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"required hide"</span>></span>*<span style="color:#0000ff"></<span style="color:#0000ff">span</span>></span> ${text('book_name')}:<span style="color:#0000ff"><<span style="color:#0000ff">i</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"fa icon-question hide"</span>></span><span style="color:#0000ff"></<span style="color:#0000ff">i</span>></span><span style="color:#0000ff"></<span style="color:#0000ff">label</span>></span>
console.log(${text('book_name')})[69]
<% if (hasPermi('book:bookCatalogue:edit')){ %>
<span style="color:#0000ff"><<span style="color:#0000ff">button</span> <span style="color:#ff0000">type</span>=<span style="color:#a31515">"submit"</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"btn btn-sm btn-primary"</span> <span style="color:#ff0000">id</span>=<span style="color:#a31515">"btnSubmit"</span>></span><span style="color:#0000ff"><<span style="color:#0000ff">i</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"fa fa-check"</span>></span><span style="color:#0000ff"></<span style="color:#0000ff">i</span>></span> ${text('保 存')}
<span style="color:#0000ff"></<span style="color:#0000ff">button</span>></span><% } %>
<span style="color:#0000ff"><<span style="color:#0000ff">button</span> <span style="color:#ff0000">type</span>=<span style="color:#a31515">"button"</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"btn btn-sm btn-default"</span> <span style="color:#ff0000">id</span>=<span style="color:#a31515">"btnCancel"</span> <span style="color:#ff0000">onclick</span>=<span style="color:#a31515">"js.closeCurrentTabPage()"</span>></span>		<span style="color:#0000ff"><<span style="color:#0000ff">i</span> <span style="color:#ff0000">class</span>=<span style="color:#a31515">"fa fa-reply-all"</span>></span><span style="color:#0000ff"></<span style="color:#0000ff">i</span>></span> ${text('关 闭')}
<span style="color:#0000ff"></<span style="color:#0000ff">button</span>></span>点击保存,将数据进行提交
点击关闭,触发关闭函数<span style="color:#0000ff"><<span style="color:#0000ff">script</span>></span>
$(<span style="color:#a31515">"#inputForm"</span>).<span style="color:#a31515">validate</span>({<span style="color:#ff0000">submitHandler</span>: <span style="color:#0000ff">function</span>(form){js.<span style="color:#a31515">ajaxSubmitForm</span>($(form), <span style="color:#0000ff">function</span>(data){js.<span style="color:#a31515">showMessage</span>(data.message);<span style="color:#0000ff">if</span>(data.result == <span style="color:#a31515">Global</span>.TRUE){js.<span style="color:#a31515">closeCurrentTabPage</span>(<span style="color:#0000ff">function</span>(contentWindow){contentWindow.<span style="color:#a31515">page</span>();});}}, <span style="color:#a31515">"json"</span>);}
});
<span style="color:#0000ff"></<span style="color:#0000ff">script</span>></span>
</code></span>

web \ BookCatalogueController.java

<span style="color:#000000"><code class="language-java">[<span style="color:#880000">80</span>]<span style="color:#008000">/*** 获取数据*/</span><span style="color:#2b91af">@ModelAttribute</span><span style="color:#0000ff">public</span> BookCatalogue <span style="color:#a31515">get</span>(String id, <span style="color:#a31515">boolean</span> isNewRecord) {<span style="color:#0000ff">return</span> bookCatalogueService.get(id, isNewRecord);}System.out.println(<span style="color:#a31515">"----------------我是控制层的获取数据1--------------------------------------"</span>);System.out.println(bookCatalogueService);[<span style="color:#880000">77</span>]<span style="color:#008000">/*** 保存数据*/</span><span style="color:#2b91af">@RequiresPermissions("book:bookCatalogue:edit")</span><span style="color:#2b91af">@PostMapping(value = "save")</span><span style="color:#2b91af">@ResponseBody</span><span style="color:#0000ff">public</span> String <span style="color:#a31515">save</span>(<span style="color:#2b91af">@Validated</span> BookCatalogue bookCatalogue) {bookCatalogueService.save(bookCatalogue);<span style="color:#0000ff">return</span> renderResult(Global.TRUE, text(<span style="color:#a31515">"保存book_catalogue成功!"</span>));}System.out.println(<span style="color:#a31515">"----------------我是控制层的获取数据2--------------------------------------"</span>);System.out.println(bookCatalogueService);
</code></span>

service \ BookCatalogueSerivce.java

<span style="color:#000000"><code class="language-java">[<span style="color:#880000">44</span>]<span style="color:#008000">/*** 保存数据(插入或更新)* <span style="color:#808080">@param</span> bookCatalogue*/</span><span style="color:#2b91af">@Override</span><span style="color:#2b91af">@Transactional(readOnly=false)</span><span style="color:#0000ff">public</span> <span style="color:#0000ff">void</span> <span style="color:#a31515">save</span>(BookCatalogue bookCatalogue) {<span style="color:#0000ff">super</span>.save(bookCatalogue);}
</code></span>

entity \ BookCatalogue.java

<span style="color:#000000"><code class="language-java"><span style="color:#008000">// 创建图书管理目录(BookCatalogue)类</span>
程序结构{属性get和set方法数据约束和数据格式
}
</code></span>

dao \ BookCatalogueDao.java

<span style="color:#000000"><code class="language-java">book_catalogueDAO接口
<span style="color:#2b91af">@MyBatisDao</span>
<span style="color:#0000ff">public</span> <span style="color:#0000ff">interface</span> <span style="color:#a31515">BookCatalogueDao</span> <span style="color:#0000ff">extends</span> <span style="color:#a31515">CrudDao</span><BookCatalogue> { <span style="color:#a31515">null</span> }
</code></span>

控制台分析

从登录页面到点击新增到保存数据的控制台记录(后续信息在此不表)
登录到点击列表

   

点击新增

录入数据并保存

 

由此可以得出,
点击新增按钮跳转页面时,
【我是控制层的获取数据】——>【我是控制层的查看编辑表单】
录入信息到点击保存的过程,可以看出:
【我是控制层的获取数据】——>【我是业务层的保存数据】——>【我是控制层的保存数据】——>
也验证了SpringMVC的三层架构
点击保存的同时触发了到目录列表的页面跳转,由此,
【我是控制层的获取数据】——>【我是控制层的查询列表数据】——>【我是业务层的查询分页数据】

简单地说,
用户录入一个数据,数据从View被发送到表现层(Controller)
Controller获取到数据后,将数据发配给Service层的对应处理方法
数据在service层进行一定的业务逻辑处理(调用相关方法处理数据)
处理后的数据被返回提交给Controller对应的部门,执行Controller相应的方法,
然后返回给页面

查询功能

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[英美文化][UMOOCs][英美概况]unit1-7答案分享

自做答案分享 --若有侵权&#xff0c;请联系我删除--

商业研究(14):出境游和自由行,接机-送机-包车-当地玩乐

2015年10月&#xff0c;在36Kr股权众筹平台&#xff0c;参与投资了一个旅游类的项目。 这个项目&#xff0c;主要是做海外出境游&#xff0c;中文接机、中文送机、中文包车&#xff0c;未来可能会有当地玩乐等旅游类项目。 现在过去大概7个月了&#xff0c;进一步熟悉了这个旅游…

4000 essential English words打卡学习训练营

很多同学让我讲一讲4000 essential english words 这套教材&#xff0c;今天就详细介绍一下这套教材&#xff0c;附带导学视频&#xff0c;具体如下&#xff1a; 一、教材介绍 The 600 words in each book of this series along with the additional target words presented …

【英语】新走遍美国总结

新走遍美国简介 新美也叫纵横美国&#xff0c;connect with English&#xff0c;本来想找一个像旧美--Family Album USA一样高大上的名字&#xff0c;然而&#xff0c;没找到。主要叙述了主角Rebecca的故事&#xff0c;大概情节就是&#xff1a; 楔子&#xff1a;vocal系女…

English Learning - L3 综合练习 3 VOA-Food 2023.05.17 周三

English Learning - L3 综合练习 3 VOA-Food 2023.05.17 周三 句 1句 2句 3句 4句 5句 6句 7句 8句 9句 10句 11句 12句 13句 14句 15结尾&#xff1a;注意力和记忆力&#xff0c;都是需要开垦的 句 1 注意后面的介词短语是当定语的 我们提供更多有关食物的表达。 they are f…

社交娱乐类APP出海攻略

据数据研究机构艾瑞咨询发布的《2022年移动应用出海趋势洞察白皮书》显示&#xff0c;中国娱乐类APP出海呈现井喷式收入增长&#xff0c;仅2021年&#xff0c;中国娱乐类应用软件出海收入就增长了204%。如此广阔向好的出海前景也极大地调动了国内应用开发者的积极性。2022年&am…

XJTU 新闻英语阅读微课内容总结

本文内容整理自西安交通大学英语在线学习平台 文章目录 第一节为什么读新闻不同分类硬新闻与软新闻对比新闻的特点英国著名报纸美国著名报纸报纸封面 新闻标题特征例子 标题的修辞手法Lexical features of Headlines1.Abbreviations and acronyms2.Clipped Words3.Midget words…

Pandas做股票预测

数据集来源于yahoo财经股票数据。下载方式&#xff1a; import pandas_datareader.data as web ## 使用 pandas-datareader 来读取股票数据 start datetime.datetime(2010, 1, 1) end datetime.datetime(2017,12,31) prices web.DataReader(002578.SZ, yahoo, start, end) p…

bp神经网络预测股票价格,bp神经网络股价预测

bp神经网络股票价格预测的MATLAB编程 。 P[];‘输入&#xff0c;开盘价&#xff0c;最高价&#xff0c;最低价&#xff0c;收盘价成交量依次5天的数据’T[];’输出&#xff0c;即第二日的收盘’netnewff(minmax(P),[7,1],{tansig,logsig},traingdx);net.trainParam.epochs100…

Backtrader(二十三)- 多股票回测

多数据策略跌代表详解 场景&#xff1a;有多个相同时间粒度的股票数据参与策略&#xff0c;不同股票数据时间并不一致 日期 开盘 收盘 最高 最低 成交量 成交额 振幅 \ 0 2020-12-22 38.44 33.67 38.44 32.96 89625 582730960.0 …

玩转天猫精灵(一)dtu配置

设备刷dtu固件 一机一密&#xff0c;根据复制的信息填写好 topic直接复制粘贴过来&#xff0c;注意订阅发布位置不要错了 数据绑定串口1&#xff0c;启用串口1 硬件连接串口1打开串口助手&#xff0c;我们在云平台在线调试发送一条控制指令 我们就可以接受到消息&#xff0c;根…

【TB-02模组专题⑦】TB02二次开发玩转各种接入天猫精灵智能家居产品,彩灯、灯具、插座、单火线总有一款适合你。

本<安信可ble mesh蓝牙模组TB-02模组专题>系列博客学习由官方博客 CSDN安信可博客 潜心所力所写。如有不对之处&#xff0c;请留言&#xff0c;我们及时更改。 1、BLE MESH开发环境linux版搭建&#xff0c;点亮一盏LED灯。 2、简单学习如何对接天猫精灵语音控制的过程…

天猫精灵云云对接

天猫精灵云云对接 一.技能开发二.产品开发 接入过程出现了一些问题&#xff0c;特此记录&#xff0c;用来给朋友们参考&#xff0c;随意记录&#xff0c;不接受批评。 前情提要&#xff1a;注册并认证 天猫精灵开放平台 | AliGenie 一.技能开发 1.创建技能 2.技能服务设置(可以…

淘宝天猫价格监控接入方案

电商市场的兴起&#xff0c;让很多人看到了电商发展的前景&#xff0c;纷纷开始涉足电商。但由于门槛低、利润高&#xff0c;一些卖家开始打起了低价促销的主意。很多品牌方在面对这些现象时都非常苦恼&#xff0c;随着这类乱价现象的逐年加剧&#xff0c;许多品牌厂商都选择做…

天猫精灵云云接入

1&#xff1a;整体流程 2&#xff1a;服务器配置https 就是申请一个证书&#xff0c;把证书配置到tomcat中 3&#xff1a;去天猫精灵开发平台 网址&#xff1a;AliGenie - 语音开发者平台 3.1&#xff1a;添加技能 1 这里配置的路径是以后设备发现访问的网址&#xff0c;…

天猫精灵是干啥的

听&#xff1a;听歌&#xff0c;听新闻&#xff0c;听故事&#xff0c;听笑话&#xff0c;听它发癫。查&#xff1a;查天气&#xff0c;查快递&#xff0c;查信息&#xff0c;查购物等等。控&#xff1a;控制智能家居陪&#xff1a;娃&#xff0c;陪老人&#xff0c;陪自己解闷…

天猫精灵如何和我们聊天?

简介&#xff1a; 天猫精灵已经走过几年的历史&#xff0c;在这几年中&#xff0c;天猫精灵变得更加智能&#xff0c;其中的体现之一是交互方式变得越来越自然。本文将介绍天猫精灵的全双工自然对话交互方式。 什么是全双工自然对话&#xff1f; 如果孙悟空的金箍棒加入天猫精…

【工程师整活】Ai-WB1-A1S实现离线语音+APP+天猫精灵控制风扇

文章目录 前言一、控制主板二、转接板原理图三、接线与烧录1.转接板接线2.固件烧录 四、离线语音功能五、App 控制功能1.云平台产品创建2.添加设备3.五元组烧录4.进入配网4.设备控制 五、天猫精灵控制功能六、联系我们 前言 对于Ai-WB1模组&#xff0c;大家可能还没有多少印象…

深度解密天猫精灵对话系统

深度解密天猫精灵对话系统 一、序 天猫精灵音箱是阿里巴巴人工智能实验室出品的智能音箱&#xff0c;在推出不久就迅速占领国内市场&#xff0c;将人工智能以开口即得的方式带入千家万户。对话智能是天猫精灵智能的重要体现&#xff0c;它一部分来自于强大的算法&#xff0c;一…

天猫精灵测评与开发案例

点此查看 所有教程、项目、源码导航 文章目录 1. 背景2. 概念2.1 天猫精灵2.2 天猫精灵开放平台2.3 技能应用平台2.4 技能2.5 语音技能 3. 创建技能3.1 登录3.2 创建语音技能3.3 填写技能基本信息3.4 选择开发方式 4. 开发流程4.1 概述4.2 语音交互模型4.3 开发后端服务4.4 代码…