云计算百科
云计算领域专业知识百科平台

Springboot 工程中快速判断web应用服务器类型

文章目录

  • 一、核心源码
  • 二、典型应用

一、核心源码

boolean isTomcat;

boolean isJetty;

@Autowired
ApplicationContext applicationContext;

@PostConstruct
private void init()
{
isTomcat = Stream.of(applicationContext.getBeanDefinitionNames()).anyMatch(name -> StringUtils.containsIgnoreCase(name, "EmbeddedTomcat"));
isJetty = Stream.of(applicationContext.getBeanDefinitionNames()).anyMatch(name -> StringUtils.containsIgnoreCase(name, "EmbeddedJetty"));
log.info("#### isTomcat: {}", isTomcat);
log.info("#### isJetty: {}", isJetty);
}

二、典型应用

import java.io.File;
import java.io.IOException;
import java.util.stream.Stream;

import javax.annotation.PostConstruct;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.fly.demo.common.JsonResult;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@Api(tags = "文件上传(simple)")
@RestController
@RequestMapping("/simple/file")
public class SimpleFileController
{
boolean isTomcat;

boolean isJetty;

@Autowired
ApplicationContext applicationContext;

@PostConstruct
private void init()
{
isTomcat = Stream.of(applicationContext.getBeanDefinitionNames()).anyMatch(name -> StringUtils.containsIgnoreCase(name, "EmbeddedTomcat"));
isJetty = Stream.of(applicationContext.getBeanDefinitionNames()).anyMatch(name -> StringUtils.containsIgnoreCase(name, "EmbeddedJetty"));
log.info("#### isTomcat: {}", isTomcat);
log.info("#### isJetty: {}", isJetty);
}

@ApiOperation("文件上传")
@PostMapping("/upload")
public JsonResult<?> upload(@RequestParam MultipartFile file)
throws IOException
{
File rootDir = new File("upload");
File dest;
if (isTomcat)
{
if (RandomUtils.nextBoolean())
{
log.info("### transferTo");
dest = new File(rootDir.getCanonicalPath() + File.separator + file.getOriginalFilename());
file.transferTo(dest);
}
else
{
log.info("### copyInputStreamToFile");
dest = new File(rootDir, file.getOriginalFilename());
FileUtils.copyInputStreamToFile(file.getInputStream(), dest);
}
}
else
{
log.info("### copyInputStreamToFile");
dest = new File(rootDir, file.getOriginalFilename());
FileUtils.copyInputStreamToFile(file.getInputStream(), dest);
}
return JsonResult.success(dest.getName());
}
}

赞(0)
未经允许不得转载:网硕互联帮助中心 » Springboot 工程中快速判断web应用服务器类型
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!