docs/developer-guide/plugin-configuration-properties.md
插件外部配置功能允许用户在特定目录添加插件相关的配置,插件启动的时候能够自动读取到该配置。
优先级从上到下由高到低。
${halo.work-dir}/plugins/configs/${plugin-id}.{yaml|yml}classpath:/config.{yaml|yml}插件开发者可在 Class Path 下 添加 config.{yaml|yml} 作为默认配置。当 .yaml 和 .yml 同时出现时,以 .yml 的配置将会被忽略。
src/main/java/my/plugin/MyPluginProperties.java
@Data
@ConfigurationProperties
public class MyPluginProperties {
private String encryptKey;
private String certPath;
}
src/main/java/my/plugin/MyPluginConfiguration.java
@EnableConfigurationProperties(MyPluginProperties.class)
@Configuration
public class MyPluginConfiguration {
}
src/main/java/my/plugin/MyPlugin.java
@Component
@Slf4j
public class MyPlugin extends BasePlugin {
private final MyPluginProperties storeProperties;
public MyPlugin(PluginWrapper wrapper, MyPluginProperties storeProperties) {
super(wrapper);
this.storeProperties = storeProperties;
}
@Override
public void start() {
log.info("My plugin properties: {}", storeProperties);
}
}
src/main/resources/config.yaml
encryptKey: encrytkey==
certPath: /path/to/cert
${halo.work-dir}/plugins/configs/${plugin-id}.{yaml|yml}
encryptKey: override encrytkey==
certPath: /another/path/to/cert