You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.6 KiB
97 lines
2.6 KiB
package config;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.util.Properties;
|
|
|
|
public class ConfigManager {
|
|
private static final Properties properties = new Properties();
|
|
|
|
static {
|
|
try (InputStream input = ConfigManager.class.getClassLoader().getResourceAsStream("config/config.properties")) {
|
|
if (input == null) {
|
|
System.err.println("无法找到配置文件 config.properties");
|
|
} else {
|
|
properties.load(input);
|
|
}
|
|
} catch (IOException e) {
|
|
System.err.println("读取配置文件失败: " + e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取配置值
|
|
* @param key 配置键
|
|
* @param defaultValue 默认值
|
|
* @return 配置值
|
|
*/
|
|
public static String getProperty(String key, String defaultValue) {
|
|
return properties.getProperty(key, defaultValue);
|
|
}
|
|
|
|
/**
|
|
* 获取整数配置值
|
|
* @param key 配置键
|
|
* @param defaultValue 默认值
|
|
* @return 配置值
|
|
*/
|
|
public static int getIntProperty(String key, int defaultValue) {
|
|
String value = properties.getProperty(key);
|
|
if (value != null) {
|
|
try {
|
|
return Integer.parseInt(value);
|
|
} catch (NumberFormatException e) {
|
|
System.err.println("配置值格式错误: " + key + " = " + value);
|
|
}
|
|
}
|
|
return defaultValue;
|
|
}
|
|
|
|
/**
|
|
* 获取基础URL
|
|
* @return 基础URL
|
|
*/
|
|
public static String getBaseUrl() {
|
|
return getProperty("base.url", "https://fanqienovel.com");
|
|
}
|
|
|
|
/**
|
|
* 获取人气榜页面URL
|
|
* @return 人气榜页面URL
|
|
*/
|
|
public static String getRankingUrl() {
|
|
return getProperty("ranking.url", "/rank/hot");
|
|
}
|
|
|
|
/**
|
|
* 获取排行榜API URL
|
|
* @return 排行榜API URL
|
|
*/
|
|
public static String getRankingApiUrl() {
|
|
return getProperty("ranking.api.url", "/api/rank/hot");
|
|
}
|
|
|
|
/**
|
|
* 获取爬取间隔
|
|
* @return 爬取间隔(毫秒)
|
|
*/
|
|
public static int getCrawlInterval() {
|
|
return getIntProperty("crawl.interval", 2000);
|
|
}
|
|
|
|
/**
|
|
* 获取最大爬取小说数量
|
|
* @return 最大爬取小说数量
|
|
*/
|
|
public static int getMaxNovelCount() {
|
|
return getIntProperty("max.novel.count", 20);
|
|
}
|
|
|
|
/**
|
|
* 获取输出目录
|
|
* @return 输出目录
|
|
*/
|
|
public static String getOutputDir() {
|
|
return getProperty("output.dir", "output");
|
|
}
|
|
}
|