Contribute to this guideReport an issue

guide从自定义位置加载配置

CKFinder 在应用程序启动时加载一次配置。

默认情况下,CKFinder 3 for Java 连接器会在应用程序的资源目录中搜索名为ckfinder.yml的文件。此配置文件的模板可以在这里找到。

在某些情况下,您可能希望更改默认行为,并从文件系统路径或数据库中加载配置。您可以通过创建一个自定义组件来实现这一点,该组件实现ConfigLoader接口。如果连接器在应用程序启动时检测到这种类型的组件,它将使用它来加载配置,而不是在应用程序资源目录中搜索名为ckfinder.yml的文件。

在下面展示的示例中,配置是从物理文件系统路径/home/joe/ckfinder.yml下的 YAML 文件中加载的。

package com.cksource.ckfinder;

import com.cksource.ckfinder.config.Config;
import com.cksource.ckfinder.config.loader.ConfigLoader;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;

import jakarta.inject.Named;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

@Named
public class CustomConfigLoader implements ConfigLoader {
    @Override
    public Config loadConfig() throws IOException {
        ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
        Path configPath = Paths.get("/home/joe/ckfinder.yml");

        return mapper.readValue(Files.newInputStream(configPath), Config.class);
    }
}