rename com.imyeyu.server to com.imyeyu.api
This commit is contained in:
125
src/main/java/com/imyeyu/api/util/InitApplication.java
Normal file
125
src/main/java/com/imyeyu/api/util/InitApplication.java
Normal file
@@ -0,0 +1,125 @@
|
||||
package com.imyeyu.api.util;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.imyeyu.java.ref.Ref;
|
||||
import com.imyeyu.lang.mapper.AbstractLanguageMapper;
|
||||
import com.imyeyu.api.TimiServerAPI;
|
||||
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||
import com.imyeyu.api.modules.common.entity.Multilingual;
|
||||
import com.imyeyu.api.modules.common.entity.Setting;
|
||||
import com.imyeyu.api.modules.common.service.SettingService;
|
||||
import com.imyeyu.api.modules.system.bean.ServerFile;
|
||||
import com.imyeyu.spring.util.GlobalReturnHandler;
|
||||
import com.imyeyu.spring.util.Redis;
|
||||
import org.eclipse.jgit.api.ArchiveCommand;
|
||||
import org.eclipse.jgit.archive.TarFormat;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* SpringBoot 启动事件,主要输出基本参数,避免混淆运行环境
|
||||
*
|
||||
* @author 夜雨
|
||||
* @version 2021-07-24 14:29
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class InitApplication implements ApplicationRunner {
|
||||
|
||||
@Value("${spring.datasource.timiserver.jdbc-url}")
|
||||
private String jdbcURL;
|
||||
|
||||
@Value("${spring.redis.host}")
|
||||
private String redisURL;
|
||||
|
||||
@Value("${spring.redis.port}")
|
||||
private int redisPort;
|
||||
|
||||
@Value("${spring.profiles.active}")
|
||||
private String env;
|
||||
|
||||
@Value("${dev.lang}")
|
||||
private String devLang;
|
||||
|
||||
private final SettingService settingService;
|
||||
private final RedisMultilingual redisMultilingual;
|
||||
private final GlobalReturnHandler globalReturnHandler;
|
||||
private final Redis<Long, Multilingual> redisLanguage;
|
||||
|
||||
private void logBaseInfo() {
|
||||
log.info("JDBC URL: {}", jdbcURL);
|
||||
log.info("Redis URL: {}:{}", redisURL, redisPort);
|
||||
log.info("System Setting:");
|
||||
List<Setting> settings = settingService.listAll();
|
||||
for (Setting setting : settings) {
|
||||
String value = Objects.requireNonNullElse(setting.getValue(), "");
|
||||
if (64 < value.length()) {
|
||||
value = value.substring(0, 64) + "..";
|
||||
}
|
||||
value = value.replaceAll("[\\r\\n]+", "");
|
||||
log.info("\t{}: {}", setting.getKey(), value);
|
||||
}
|
||||
log.info("Init Application Finished.");
|
||||
}
|
||||
|
||||
private void initGitCommand() {
|
||||
ArchiveCommand.registerFormat("tar.gz", new TarFormat());
|
||||
}
|
||||
|
||||
private void initMultilingual() {
|
||||
// redisLanguage.flushAll();
|
||||
globalReturnHandler.setMultilingualHeader(key -> {
|
||||
AbstractLanguageMapper map = redisMultilingual.map(TimiServerAPI.getUserLanguage());
|
||||
return map.text(key);
|
||||
});
|
||||
}
|
||||
|
||||
private void initFileType() {
|
||||
JsonObject items = settingService.getAsJsonObject(SettingKey.SYSTEM_FILE_TYPE);
|
||||
|
||||
String[] extensions;
|
||||
JsonArray extensionsArray;
|
||||
JsonObject itemObject;
|
||||
List<String> extensionsList;
|
||||
for (Map.Entry<String, JsonElement> item : items.entrySet()) {
|
||||
ServerFile.FileType fileType = Ref.toType(ServerFile.FileType.class, item.getKey());
|
||||
itemObject = item.getValue().getAsJsonObject();
|
||||
extensionsList = new ArrayList<>();
|
||||
extensionsArray = itemObject.get("extensions").getAsJsonArray();
|
||||
for (int i = 0; i < extensionsArray.size(); i++) {
|
||||
if (extensionsArray.get(i).isJsonObject()) {
|
||||
extensionsList.add(extensionsArray.get(i).getAsJsonObject().get("value").getAsString());
|
||||
} else {
|
||||
extensionsList.add(extensionsArray.get(i).getAsString());
|
||||
}
|
||||
}
|
||||
extensions = new String[extensionsList.size()];
|
||||
// 设置扩展名所属文件类型
|
||||
fileType.setExtensions(extensionsList.toArray(extensions));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
Method[] methods = getClass().getDeclaredMethods();
|
||||
for (int i = 0; i < methods.length; i++) {
|
||||
if (!methods[i].getName().equals("run") && !methods[i].getName().contains("$")) {
|
||||
methods[i].setAccessible(true);
|
||||
methods[i].invoke(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user