提取一首歌里面的歌词文本,带断句,主要提取的是人声部分。
more >>服务端之间的调用,如果涉及参数校验,就需要把json传参拍平,增加到加签验签中。
加签验签,一方面是校验请求的合法性,另一方方面是校验传参的完整性,以及传参没有被篡改。
本文提供json拍平的方法,适用于任何传参类型。如果传参中有字节流,转为Base64字符串参与加签验签。
more >>如果一张宽表有45个属性,一般会拆分为3张15个属性的小表管理,他们之间是严格的一对一关系。
但是在若依后台的管理中,一般会合并多张小表为一张进行管理,可能是两张,也可能是3张。
这里假设需要合并3张小表为一个CRUD页面,进行宽表数据的管理。那怎么实现呢?
首先新建一张数据表,这张数据表就是3张小表合并之后的宽表,具有所有小表的属性。
在若依的代码生成中,导入这张表,配置相关的展示属性,生成前后端代码。
导入前后端代码,前端代码可直接使用,如果需要调整的话,直接调整。
后端代码一开始需要处理XML文件,改写XML文件的操作数据库语句,包括:修改宽表为3张小表的INNER JOIN、修改SELECT属性的映射、拆分UPDATE为3条语句、拆分DELETE为3条语句等,再修改service的UPDATE和DELETE逻辑。启动项目。
结合预览样式,微调其他需求。
最后,删除宽表。
这样,同时管理3张小表的后台页面就快速实现了。
使用 selenium
实现
搭建Web站点,放入HTML页面,后端Query方式传入参数,生成证书页面,使用Chrome驱动和Chrome浏览器无界面模式加载页面,使用selenium截图页面,保存页面到File,上传OSS,存储访问相对路径到数据表storage的certificate_url字段。在File上传OSS之后,需要删除临时File。
生成证书和上传OSS建议异步实现,前端先展示证书正在生成中;或者同步返回,同步会慢一些。看需求。
版本关系:chrome-browser、chrome-driver、selenium-chrome-driver版本需要统一,自行查阅版本对应关系。
需要在使用环境安装chrome-browser和chrome-driver。
more >>SpringBoot一般连接一个数据库操作,但有些特殊场景,需要连接两个或多个数据库进行操作。
现整理连接多数据库的思路如下:
特别注意,选择MybatisSqlSessionFactoryBean
去初始化,否则Mapper的selectone等方法都会失效。
component初始化需要读取配置文件的参数,这种component的初始化,如果是直接在一个文件初始化,比较容易实现。
但是现在要把这个component分为两部分初始化,base部分放在公共仓库,引用base在config实现初始化。这样做,方便统一管理base,需要使用的模块,自行引入base初始化使用。但当初始化需要配置文件的参数时,实现会麻烦一些。
本文提供一种方式,实现component的分离,同时支持初始化参数传入。
more >>像Chat-GPT服务,接口鉴权就使用一个简单的Key,而不使用appId和appKey的模式。那这个key到底有什么神奇之处呢?为什么可以鉴权呢?
这个key是根据复杂的规则生成的,随便修改一个或几个字母是不可能有效的,甚至不知道规则的暴力破解也不奏效。
现在,我也需要生成一个类似的key,这个key能提供给用户离线使用,封装进程序,用户在不能破解应用源代码的前提下,必须使用这个key才能使用离线应用。
自定义key的生成规则,详见下文代码。
more >>tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true