💩 改善代码, 通过 P3C 校验

This commit is contained in:
zhaojun1998
2019-12-21 12:08:24 +08:00
parent 0e6bcbfa11
commit 8e7d4432a3
58 changed files with 239 additions and 102 deletions

View File

@@ -6,6 +6,9 @@ import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* @author zhaojun
*/
@EnableAsync
@SpringBootApplication
@EnableCaching

View File

@@ -26,6 +26,9 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public class AliyunServiceImpl implements FileService {

View File

@@ -7,6 +7,7 @@ import java.lang.annotation.Target;
/**
* 标记注解, 用于在调用前检查是否已存储策略
* @author zhaojun
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -8,6 +8,9 @@ import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
/**
* @author zhaojun
*/
@Aspect
@Component
public class StorageStrategyInitCheckAspect {

View File

@@ -14,6 +14,7 @@ import java.io.IOException;
/**
* 开启跨域支持. 一般用于开发环境, 或前后端分离部署时开启.
* @author zhaojun
*/
public class CorsFilter extends GenericFilterBean {

View File

@@ -9,6 +9,9 @@ import org.springframework.stereotype.Component;
import java.util.Map;
/**
* @author zhaojun
*/
@Component
public class StorageTypeFactory implements ApplicationContextAware {

View File

@@ -5,6 +5,9 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @author zhaojun
*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

View File

@@ -16,6 +16,7 @@ import java.util.Collections;
/**
* 缓存配置类, 用于根据配置决定使用 redis 缓存还是 caffeine (内存).
* @author zhaojun
*/
@Configuration
public class ZFileCacheConfiguration {

View File

@@ -7,6 +7,9 @@ import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
/**
* @author zhaojun
*/
@Configuration
public class ZFileConfiguration {

View File

@@ -20,6 +20,7 @@ import java.util.List;
/**
* 后台管理
* @author zhaojun
*/
@RestController
@RequestMapping("/admin")

View File

@@ -29,6 +29,7 @@ import java.util.List;
/**
* 前台文件管理
* @author zhaojun
*/
@RequestMapping("/api")
@RestController
@@ -72,16 +73,16 @@ public class FileController {
fileItemList.sort(new FileComparator(sortBy, order));
filterFileList(fileItemList);
Integer total = fileItemList.size();
Integer totalPage = (total + PAGE_SIZE - 1) / PAGE_SIZE;
int total = fileItemList.size();
int totalPage = (total + PAGE_SIZE - 1) / PAGE_SIZE;
if (page > totalPage) {
return ResultBean.successData(new ArrayList<>());
}
Integer start = (page - 1) * PAGE_SIZE;
Integer end = page * PAGE_SIZE;
end = end > total ? total : end;
int start = (page - 1) * PAGE_SIZE;
int end = page * PAGE_SIZE;
end = Math.min(end, total);
List<FileItemDTO> fileSubItem = fileItemList.subList(start, end);
return ResultBean.successData(fileSubItem);
}

View File

@@ -22,6 +22,7 @@ import java.util.Objects;
/**
* 系统安装初始化
* @author zhaojun
*/
@Controller
public class InstallController {

View File

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.ResponseStatus;
/**
* 全局异常处理器
* @author zhaojun
*/
@ControllerAdvice
@ResponseBody

View File

@@ -2,6 +2,7 @@ package im.zhaojun.common.exception;
/**
* 对象存储初始化异常
* @author zhaojun
*/
public class InitializeException extends RuntimeException {

View File

@@ -1,5 +1,8 @@
package im.zhaojun.common.exception;
/**
* @author zhaojun
*/
public class SearchDisableException extends RuntimeException {
public SearchDisableException() {

View File

@@ -2,6 +2,7 @@ package im.zhaojun.common.exception;
/**
* 存储策略未初始化异常
* @author zhaojun
*/
public class StorageStrategyUninitializedException extends RuntimeException {

View File

@@ -2,6 +2,7 @@ package im.zhaojun.common.exception;
/**
* 未知的存储类型异常
* @author zhaojun
*/
public class UnknownStorageTypeException extends RuntimeException {

View File

@@ -5,6 +5,9 @@ import lombok.Data;
import javax.persistence.*;
/**
* @author zhaojun
*/
@Entity(name = "STORAGE_CONFIG")
@Data
public class StorageConfig {

View File

@@ -4,6 +4,9 @@ import lombok.Data;
import javax.persistence.*;
/**
* @author zhaojun
*/
@Entity(name = "SYSTEM_CONFIG")
@Data
public class SystemConfig {

View File

@@ -1,5 +1,8 @@
package im.zhaojun.common.model.constant;
/**
* @author zhaojun
*/
public class SystemConfigConstant {
public static final String SITE_NAME = "siteName";

View File

@@ -4,6 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* @author zhaojun
*/
@Configuration
public class ZFileConstant {

View File

@@ -1,5 +1,8 @@
package im.zhaojun.common.model.dto;
/**
* @author zhaojun
*/
public class AudioInfoDTO {
private String title;
private String artist;

View File

@@ -5,6 +5,9 @@ import im.zhaojun.common.model.enums.FileTypeEnum;
import java.io.Serializable;
import java.util.Date;
/**
* @author zhaojun
*/
public class FileItemDTO implements Serializable {
private String name;

View File

@@ -4,6 +4,9 @@ import im.zhaojun.common.model.enums.StorageTypeEnum;
import java.util.Map;
/**
* @author zhaojun
*/
public class InstallModelDTO {
private String siteName;
private StorageTypeEnum storageStrategy;

View File

@@ -2,6 +2,9 @@ package im.zhaojun.common.model.dto;
import java.io.Serializable;
/**
* @author zhaojun
*/
public class ResultBean implements Serializable {
private static final long serialVersionUID = -8276264968757808344L;

View File

@@ -4,6 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
/**
* @author zhaojun
*/
public class SiteConfigDTO implements Serializable {
private static final long serialVersionUID = 8811196207046121740L;

View File

@@ -4,7 +4,15 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import im.zhaojun.common.model.enums.StorageTypeEnum;
import im.zhaojun.common.model.enums.StorageTypeEnumSerializerConvert;
import lombok.Data;
import lombok.ToString;
/**
* 系统设置传输类
* @author zhaojun
*/
@ToString
@Data
public class SystemConfigDTO {
@JsonIgnore
@@ -27,76 +35,4 @@ public class SystemConfigDTO {
private String password;
private String domain;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSiteName() {
return siteName;
}
public void setSiteName(String siteName) {
this.siteName = siteName;
}
public Boolean getInfoEnable() {
return infoEnable;
}
public void setInfoEnable(Boolean infoEnable) {
this.infoEnable = infoEnable;
}
public Boolean getSearchEnable() {
return searchEnable;
}
public void setSearchEnable(Boolean searchEnable) {
this.searchEnable = searchEnable;
}
public Boolean getSearchIgnoreCase() {
return searchIgnoreCase;
}
public void setSearchIgnoreCase(Boolean searchIgnoreCase) {
this.searchIgnoreCase = searchIgnoreCase;
}
public StorageTypeEnum getStorageStrategy() {
return storageStrategy;
}
public void setStorageStrategy(StorageTypeEnum storageStrategy) {
this.storageStrategy = storageStrategy;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
}

View File

@@ -1,5 +1,8 @@
package im.zhaojun.common.model.enums;
/**
* @author zhaojun
*/
public enum FileTypeEnum {
/**

View File

@@ -3,6 +3,9 @@ package im.zhaojun.common.model.enums;
import java.util.HashMap;
import java.util.Map;
/**
* @author zhaojun
*/
public enum StorageTypeEnum {
/**

View File

@@ -3,6 +3,9 @@ package im.zhaojun.common.model.enums;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
/**
* @author zhaojun
*/
@Converter(autoApply = true)
public class StorageTypeEnumConvert implements AttributeConverter<StorageTypeEnum, String> {

View File

@@ -1,11 +1,15 @@
package im.zhaojun.common.model.enums;
import org.springframework.core.convert.converter.Converter;
import org.springframework.lang.NonNull;
/**
* @author zhaojun
*/
public class StorageTypeEnumDeSerializerConvert implements Converter<String, StorageTypeEnum> {
@Override
public StorageTypeEnum convert(String s) {
public StorageTypeEnum convert(@NonNull String s) {
return StorageTypeEnum.getEnum(s);
}
}

View File

@@ -6,6 +6,9 @@ import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
/**
* @author zhaojun
*/
public class StorageTypeEnumSerializerConvert extends JsonSerializer<StorageTypeEnum> {
@Override

View File

@@ -7,9 +7,17 @@ import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author zhaojun
*/
@Repository
public interface StorageConfigRepository extends JpaRepository<StorageConfig, Integer> {
/**
* 根据存储类型找对应的配置信息
* @param type 存储类型
* @return 此类型所有的配置信息
*/
List<StorageConfig> findByTypeOrderById(StorageTypeEnum type);
}

View File

@@ -4,8 +4,16 @@ import im.zhaojun.common.model.SystemConfig;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author zhaojun
*/
@Repository
public interface SystemConfigRepository extends JpaRepository<SystemConfig, Integer> {
/**
* 查找系统设置中, 某个设置项对应的值
* @param key 设置项
* @return 设置值
*/
SystemConfig findByKey(String key);
}

View File

@@ -3,7 +3,10 @@ package im.zhaojun.common.security;
import cn.hutool.crypto.SecureUtil;
import org.springframework.security.crypto.password.PasswordEncoder;
public class MD5PasswordEncoder implements PasswordEncoder {
/**
* @author zhaojun
*/
public class Md5PasswordEncoder implements PasswordEncoder {
@Override
public String encode(CharSequence rawPassword) {

View File

@@ -6,6 +6,9 @@ import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* @author zhaojun
*/
@Configuration
public class MyCorsFilter {

View File

@@ -18,7 +18,8 @@ import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
/**
* 自定义Security配置类
* 自定义 Security 配置类
* @author zhaojun
*/
@EnableWebSecurity
public class MySecurityConfig extends WebSecurityConfigurerAdapter {
@@ -115,7 +116,7 @@ public class MySecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public static PasswordEncoder passwordEncoder() {
return new MD5PasswordEncoder();
return new Md5PasswordEncoder();
}
}

View File

@@ -10,6 +10,9 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import javax.annotation.Resource;
import java.util.Collections;
/**
* @author zhaojun
*/
public class MyUserDetailsServiceImpl implements UserDetailsService {
@Resource

View File

@@ -9,6 +9,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @author zhaojun
*/
@Service
public class FileAsyncCacheService {

View File

@@ -14,13 +14,31 @@ import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
/**
* @author zhaojun
*/
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public interface FileService {
/**
* 获取指定路径下的文件及文件及
* @param path 文件路径
* @return 文件及文件夹列表
* @throws Exception 获取时可能抛出的任何异常, 如 key 异常, 网络超时, 路径不存在等问题.
*/
List<FileItemDTO> fileList(String path) throws Exception;
/**
* 获取文件下载地址
* @param path 文件路径
* @return 文件下载地址
* @throws Exception 生成下载地址异常
*/
String getDownloadUrl(String path) throws Exception;
/**
* 初始化方法, 启动时自动调用实现类的此方法进行初始化.
*/
@PostConstruct
default void init() {}
@@ -30,6 +48,12 @@ public interface FileService {
@CacheEvict(allEntries = true)
default void clearCache() {}
/**
* 搜索文件
* @param name 文件名
* @return 包含该文件名的所有文件或文件夹
* @throws Exception 搜索过程出现的异常
*/
default List<FileItemDTO> search(String name) throws Exception {
List<FileItemDTO> result = new ArrayList<>();
@@ -43,6 +67,11 @@ public interface FileService {
return result;
}
/**
* 查询所有文件
* @return 所有文件
* @throws Exception 异常现象
*/
default List<FileItemDTO> selectAllFileList() throws Exception {
List<FileItemDTO> result = new ArrayList<>();
@@ -64,7 +93,15 @@ public interface FileService {
return result;
}
/**
* 获取存储引擎类型
* @return 存储引擎类型枚举
*/
StorageTypeEnum getStorageTypeEnum();
/**
* 获取是否初始化成功
* @return 初始化成功与否
*/
boolean getIsInitialized();
}

View File

@@ -10,6 +10,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
public class StorageConfigService {

View File

@@ -15,6 +15,9 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author zhaojun
*/
@Service
public class SystemConfigService {
@@ -86,13 +89,13 @@ public class SystemConfigService {
storageStrategySystemConfig.setValue(systemConfigDTO.getStorageStrategy().getKey());
systemConfigList.add(storageStrategySystemConfig);
if (!StringUtils.isNullOrEmpty(systemConfigDTO.getUsername())) {
if (StringUtils.isNotNullOrEmpty(systemConfigDTO.getUsername())) {
SystemConfig usernameSystemConfig = systemConfigRepository.findByKey(SystemConfigConstant.USERNAME);
usernameSystemConfig.setValue(systemConfigDTO.getUsername());
systemConfigList.add(usernameSystemConfig);
}
if (!StringUtils.isNullOrEmpty(systemConfigDTO.getPassword())) {
if (StringUtils.isNotNullOrEmpty(systemConfigDTO.getPassword())) {
SystemConfig passwordSystemConfig = systemConfigRepository.findByKey(SystemConfigConstant.PASSWORD);
passwordSystemConfig.setValue(systemConfigDTO.getPassword());
systemConfigList.add(passwordSystemConfig);
@@ -106,7 +109,7 @@ public class SystemConfigService {
usernameConfig.setValue(username);
systemConfigRepository.save(usernameConfig);
password = SecureUtil.md5(password);;
password = SecureUtil.md5(password);
SystemConfig systemConfig = systemConfigRepository.findByKey(SystemConfigConstant.PASSWORD);
systemConfig.setValue(password);

View File

@@ -7,8 +7,12 @@ import im.zhaojun.common.util.HttpUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Iterator;
import java.util.List;
/**
* @author zhaojun
*/
@Service
public class SystemService {

View File

@@ -18,6 +18,7 @@ import java.net.URL;
/**
* 音频解析工具类
* @author zhaojun
*/
public class AudioHelper {

View File

@@ -12,6 +12,8 @@ import java.util.Comparator;
* - 默认按照名称排序
* - 默认排序为升序
* - 按名称排序不区分大小写
*
* @author zhaojun
*/
public class FileComparator implements Comparator<FileItemDTO> {

View File

@@ -3,6 +3,9 @@ package im.zhaojun.common.util;
import cn.hutool.core.util.URLUtil;
import org.springframework.web.client.RestTemplate;
/**
* @author zhaojun
*/
public class HttpUtil {
public static String getTextContent(String url) {

View File

@@ -7,8 +7,12 @@ import org.springframework.beans.factory.DisposableBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Lazy;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
/**
* @author zhaojun
*/
@Service
@Lazy(false)
public class SpringContextHolder implements ApplicationContextAware, DisposableBean {
@@ -59,7 +63,7 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException {
SpringContextHolder.applicationContext = applicationContext;
}

View File

@@ -5,12 +5,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 项目启动监听器, 当项目启动时, 遍历当前对象存储的所有内容, 添加到缓存中.
* @author zhaojun
*/
@Component
public class StartupListener implements ApplicationListener<ContextRefreshedEvent> {
@@ -21,7 +23,7 @@ public class StartupListener implements ApplicationListener<ContextRefreshedEven
private FileAsyncCacheService fileAsyncCacheService;
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
public void onApplicationEvent(@NonNull ContextRefreshedEvent event) {
try {
fileAsyncCacheService.cacheGlobalFile();
} catch (Exception e) {

View File

@@ -1,13 +1,23 @@
package im.zhaojun.common.util;
/**
* @author zhaojun
*/
public class StringUtils {
public static final char DELIMITER = '/';
public static final String HTTP_PROTOCAL = "http://";
public static final String HTTPS_PROTOCAL = "https://";
/**
* 移除 URL 中的第一个 '/'
* @return 如 path = '/folder1/file1', 返回 'folder1/file1'
*/
public static String removeFirstSeparator(String path) {
if (!"".equals(path) && path.charAt(0) == '/') {
if (!"".equals(path) && path.charAt(0) == DELIMITER) {
path = path.substring(1);
}
return path;
@@ -18,14 +28,14 @@ public class StringUtils {
* @return 如 path = '/folder1/file1/', 返回 '/folder1/file1'
*/
public static String removeLastSeparator(String path) {
if (!"".equals(path) && path.charAt(path.length() - 1) == '/') {
if (!"".equals(path) && path.charAt(path.length() - 1) == DELIMITER) {
path = path.substring(0, path.length() - 1);
}
return path;
}
public static String concatUrl(String path, String name) {
return removeDuplicateSeparator("/" + path + "/" + name);
return removeDuplicateSeparator(DELIMITER + path + DELIMITER + name);
}
@@ -36,11 +46,11 @@ public class StringUtils {
* @return URL
*/
public static String concatPath(String domain, String path) {
if (path != null && path.length() > 1 && path.charAt(0) != '/') {
path = '/' + path;
if (path != null && path.length() > 1 && path.charAt(0) != DELIMITER) {
path = DELIMITER + path;
}
if (domain.charAt(domain.length() - 1) == '/') {
if (domain.charAt(domain.length() - 1) == DELIMITER) {
domain = domain.substring(0, domain.length() - 2);
}
@@ -54,16 +64,16 @@ public class StringUtils {
StringBuilder sb = new StringBuilder();
if (path.indexOf("http://") == 0) {
sb.append("http://");
} else if (path.indexOf("https://") == 0) {
sb.append("https://");
if (path.indexOf(HTTP_PROTOCAL) == 0) {
sb.append(HTTP_PROTOCAL);
} else if (path.indexOf(HTTPS_PROTOCAL) == 0) {
sb.append(HTTPS_PROTOCAL);
}
for (int i = sb.length(); i < path.length() - 1; i++) {
char current = path.charAt(i);
char next = path.charAt(i + 1);
if (!(current == '/' && next == '/')) {
if (!(current == DELIMITER && next == DELIMITER)) {
sb.append(current);
}
}
@@ -75,5 +85,7 @@ public class StringUtils {
return s == null || "".equals(s);
}
public static boolean isNotNullOrEmpty(String s) {
return !isNullOrEmpty(s);
}
}

View File

@@ -22,6 +22,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public class FtpServiceImpl implements FileService {

View File

@@ -24,6 +24,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public class HuaweiServiceImpl implements FileService {

View File

@@ -19,6 +19,9 @@ import java.io.File;
import java.io.IOException;
import java.util.Date;
/**
* @author zhaojun
*/
@Controller
public class LocalController {
@@ -27,7 +30,7 @@ public class LocalController {
@GetMapping("/file/**")
@ResponseBody
public ResponseEntity<FileSystemResource> downAttachment(final HttpServletRequest request) throws IOException {
public ResponseEntity<FileSystemResource> downAttachment(final HttpServletRequest request) {
String path = (String) request.getAttribute(
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String bestMatchPattern = (String ) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
@@ -37,7 +40,7 @@ public class LocalController {
return export(new File(StringUtils.concatPath(localServiceImpl.getFilePath(), URLUtil.decode(filePath))));
}
private ResponseEntity<FileSystemResource> export(File file) throws IOException {
private ResponseEntity<FileSystemResource> export(File file) {
MediaType mediaType = MediaType.APPLICATION_OCTET_STREAM;

View File

@@ -21,6 +21,9 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
public class LocalServiceImpl implements FileService {
@@ -51,7 +54,7 @@ public class LocalServiceImpl implements FileService {
}
@Override
public List<FileItemDTO> fileList(String path) throws Exception {
public List<FileItemDTO> fileList(String path) {
List<FileItemDTO> fileItemList = new ArrayList<>();
String fullPath = StringUtils.concatPath(filePath, path);
@@ -79,7 +82,7 @@ public class LocalServiceImpl implements FileService {
}
@Override
public String getDownloadUrl(String path) throws Exception {
public String getDownloadUrl(String path) {
SystemConfig usernameConfig = systemConfigRepository.findByKey(SystemConfigConstant.DOMAIN);
return StringUtils.removeDuplicateSeparator(usernameConfig.getValue() + "/file/" + path);
}

View File

@@ -23,6 +23,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public class MinIOServiceImpl implements FileService {

View File

@@ -13,6 +13,9 @@ import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
/**
* @author zhaojun
*/
@Controller
public class OneDriveController {

View File

@@ -28,6 +28,9 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public class QiniuServiceImpl implements FileService {

View File

@@ -31,6 +31,9 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public class TencentServiceImpl implements FileService {

View File

@@ -22,6 +22,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author zhaojun
*/
@Service
@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator")
public class UpYunServiceImpl implements FileService {