从自定义位置加载配置
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);
}
}