# 文件配置

文件配置使用properties格式文件,以上一章节中讲到的`配置名`作为**键(key)**,以配置的值作为**值(value)**

> 以核心`1.12.x`的配置规范为准,较早版本中需要省略到开头的`simbot.`

# 常用配置

一般在使用`CQ HTTP API`中,最常用的配置如有:

```properties

# core.bots,核心提供的配置项,代表要注册的bot列表。详细介绍见核心的配置说明。

simbot.core.bots=:http://127.0.0.1:5700

# Java监听端口, 默认为15514,需要最终拼接为url并填入插件配置中的"post_url"参数中。

simbot.cqhttp.javaPort=8877

# 监听请求地址,默认为一个斜杠"/"

simbot.bmcqhttp.serverPath=/coolq

```

# 详细配置

首先,关于在`核心`中所提供的配置映射请直接查阅 [核心通用文件配置](./文件配置.md)

此处将列举`CQ HTTP API组件`中所有提供的配置参数:

> 以核心`1.12.x`的配置规范为准,较早版本中需要省略到开头的`simbot.`

```properties

# Java监听端口, 默认为15514,需要最终拼接为url并填入插件配置中的"post_url"参数中。

simbot.cqhttp.javaPort=

# TCP连接最大并发数, 传 0 或负数表示使用默认值,默认为0

simbot.cqhttp.backLog=

# 监听请求地址,默认为一个斜杠"/"

simbot.cqhttp.serverPath=

# 接收的请求方式,默认为 post。可有多个,多个使用逗号分隔。插件目前也仅支持post类型,所以一般不需要更改。

simbot.cqhttp.method=

######## v1.12.0-1.12 后更新 #########

# cqhttp 的access_token验证

simbot.cqhttp.accessToken=

# cqhttp 的secret密钥

simbot.cqhttp.secret=

```

>[warning] 如果CQ HTTP API组件的版本低于`0.7.0-BETA-1.7.0`, 则上述中的`配置名`中,所有的`cqhttp` 应当替换为 `simple.robot.conf.coolqhttpapi`

# 如何使用(核心1.8.x以下)

首先,修改启动器接口。

如果是普通的`CoolQHttpApp`,则修改为`CoolQHttpResourceApp`

>[info] `CoolQHttpApp -> CoolQHttpResourceApp`

如果是无服务的`CoolQNoServerApp`,则修改`CoolQNoServerResourceApp`

>[info] `CoolQNoServerApp -> CoolQNoServerResourceApp`

然后,修改被实现的方法。

在`xxxxxxxResourceApp`接口,即文件配置启动接口中,存在三个**必须**需要被重写的方法:

```java

/** 配置文件resource路径 */

String resourceName();

/** 配置文件读取后,启动前*/

void before(Properties args, CoolQHttpConfiguration configuration);

/**启动后 */

void after(CQCodeUtil cqCodeUtil, MsgSender sender);

```

上述三个方法中,`after`方法与其他App启动接口一致,不再阐述。

首先说说`resourceName`方法。使用此方法返回一个项目`resources`资源目录下的配置文件路径,启动的时候启动器便会自动获取此配置文件并进行配置。

其次说说`before`方法。此方法相比较于非配置文件启动接口来讲,多了一个`Properties`类型的参数。此参数即为你实际Properties配置文件的值。然后第二个参数便是通过读取Properties配置文件而得到的配置类。此时你可以选择不任何操作,或者可以选择通过代码在进行进一步的配置。

>[warning] 注①:使用了`xxxxxxxResourcesApp`配置文件启动接口的时候,请务必**不要**重写`before(CoolQHttpConfiguration)` 方法,而只重写新的`before(Properties, CoolQHttpConfiguration)方法,否则会导致配置类无法正常注入参数。`

除了上述所提到的三个**必须**重写的方法以外,配置文件启动接口还提供了几个**可选**的配置方法。下述可选配置中,在非需要的情况下请不要重写。

```java

/**

* 获取配置文件的文件输入流对象,并根据此对象对配置对象进行自动装填。

* 获取到的流在使用完成后会自动关闭。

* @return 配置文件流对象(properties

*/

InputStream getStream();

```

假如你的配置文件不在`resources`路径下,那么你可以选择自己指定配置文件的`InputStream`的对象获取方法。

>[warning] 注②:当重写了`getStream()`时,`resourceName()`方法即不再生效。

# 如何使用(核心1.8.x及以上)

写完配置文件后,在你的任意启动类上标注一个注解:`@SimpleRobotApplication(resources = "/conf.properties")`,其中,`resources`参数即代表你的配置文件在resouces路径下的相对路径哦。

就像这样:

```java

@SimpleRobotApplication(resources = "/conf.properties")

public class RunApp { //... }

```

此时,这个启动类可以不实现任何接口。

然后通过class作为参数进行启动:

```java

new CoolQHttpApplication().run(RunApp.class, args);

```

# 如何使用(核心1.9.x及以上)

>[success] 在`1.8.x`的基础上

当然,如果你想要即继承接口来实现代码配置,又可以通过注解来读取配置文件,你可以将`run`方法更替为`runWithAnnotation`方法,例如:

```java

@SimpleRobotApplication(resources = "/conf.properties")

public class RunApp implements CoolQApp {

// implement interface and do something...

}

```

然后:

```java

new CoolQHttpApplication().runWithAnnotation(new RunApp(), args);

```

java robot 文档_文件配置 · simple-robot 机器人开发者使用文档 · 看云相关推荐

  1. java.policy无法修改_如何配置Policy文件进行Java安全策略的设置

    中国人最喜欢访问的网站 只要注册ofo就送你10块钱,还等什么,快来注册吧 Java语言具有完善的安全框架,从编程语言.编译器.解释程序到Java虚拟机,都能确保Java系统不被恶意的代码或敌对的编译 ...

  2. swagger api文档_带有Swagger的Spring Rest API –创建文档

    swagger api文档 使REST API易于使用的真正关键是好的文档. 但是,即使您的文档做得很好,您也需要设置公司流程的权利以正确,及时地发布它. 确保利益相关者按时收到是一回事,但是您也要负 ...

  3. virtualbox中文技术文档_随笔--西门子STEP7中如何寻找技术文档

    西门子STEP7软件支持的编程语言除了常用的LAD/FBD/STL,还有SCL/GRAPH等,应该说除了LAD/STL之外,SCL和GRAPH也是比较常用的,至少对我个人来说是这样,但是每种指令在不同 ...

  4. swagger api文档_带有Swagger的Spring Rest API –公开文档

    swagger api文档 创建API文档后,将其提供给涉众很重要. 在理想情况下,此发布的文档将足够灵活以解决任何最后的更改,并且易于分发(就成本以及完成此操作所需的时间而言). 为了使之成为可能, ...

  5. 软件项目文档_什么是软件项目的好的文档?

    软件项目文档 开放地理空间(OSGeo)基金会最近参加了Google的第一个文档季节 ,其中Google赞助了高级技术作家为开源项目做出贡献. OSGeo是大约50个地理空间开源项目的总括组织. 多年 ...

  6. 苹果手机怎么编辑word文档_多人协同编辑一份Word文档用修订功能就对了

    在职场中我们难免会遇到需要与同事协同编辑一份文档的情况 那么如何清晰不混乱地协同编辑呢? 如下图所示,相信不少人在协同编辑文档时都是这样做的,用各种颜色字和括号,写明自己想编辑的内容及要修改的点.一旦 ...

  7. java导出word表格_使用PowerDesigner16.5 逆向数据库 导出word文档

    在上一篇<使用PowerDesigner16.5 逆向数据库生产表结构或导出word文档二>中,我们学会了使用PowerDesigner16.5怎么连接数据库,逆向生成表结构.有时候,我们 ...

  8. python如何读取公共盘的文档_如何使用 Sphinx 给 Python 代码写文档 | Linux 中国

    最好将文档作为开发过程的一部分.Sphinx 加上 Tox,让文档可以轻松书写,并且外观漂亮.-- Moshe Zadka Python 代码可以在源码中包含文档.这种方式默认依靠 docstring ...

  9. java实现上传_文件上传(java)

    最近看了一本书上的代码,代码的主要功能是实现文件的上传.但是,当我运行代码的时候竟然报错了.(我用的IDEA).有错就解决吧.以下是我遇到的几个错误. 废话不多说先附上源代码. UploadServl ...

最新文章

  1. mysql 返回的查询结果为空 (即零行)._Mysql数据同步(单向)
  2. KVM中I/O虚拟化介绍(五)
  3. linux中的opencv多版本共存切换的问题
  4. VS2005中ReportViewer 本地模式下报表呈现 入门示例
  5. python接口自动化 一个变量 其他接口要用_python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)...
  6. 高等数学复习笔记——第八章:向量代数与空间解析几何
  7. 城市经纬度 json
  8. Flink:watermark
  9. 大白话Vue之publicPath
  10. ...startWebLogic.sh: line 202:21293 已杀死
  11. 芯片的SD/MMC控制器以及SD卡介绍
  12. 2021四川高考成绩位次查询,四川高考排名对应学校-四川高考位次查询(2021年文科参考)...
  13. 搜狐,这次你玩过火了。
  14. securecrt启动mini2440卡在Please press Enter to activate this console问题已解决
  15. live555移植ARM过程
  16. 《知识就是力量》第七期——“怎样成为不纠结的人”笔记
  17. android 摄像头方向,android:调整摄像头方向
  18. 锁屏唤醒定时任务的处理方式
  19. linux zfs raid,CentOS7安装并使用zfs 新建RaidZ2阵列
  20. 影响世界的大事情:2018年11月16日BCH/BSV算力战

热门文章

  1. ABAP Development Tool 代码模板和其他一些实用技巧汇总
  2. 如何修改微软share point site 的页面风格
  3. SAP Spartacus 自定义 PageResolver 的用法
  4. Angular单元测试ComponentFixture的实例化过程明细
  5. SAP AMDP介绍 - ABAP托管的HANA数据库过程
  6. SAP云平台API portal里的discover all功能
  7. SAP Fiori 应用无法根据contact搜索的原因分析
  8. SAP CRM后台取数据逻辑的性能优化
  9. why unit test of user status failed
  10. SAP Gateway service language determination