mirror of https://github.com/halo-dev/halo
1.8 KiB
1.8 KiB
插件外部配置
插件外部配置功能允许用户在特定目录添加插件相关的配置,插件启动的时候能够自动读取到该配置。
配置优先级
优先级从上到下由高到低。
${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
可能存在的问题
- 增加未来实现"集群"架构的难度。