# 文件配置 文件配置使用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`资源目录下的配置文件路径,启动的时候启动器便会自动获取此配置文件并进行配置。 <br> 其次说说`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); ```