1、日志格式化
1、在application.yml
文件中添加
spring:
mvc:
servlet:
load-on-startup: 0
format:
date: yyyy-MM-dd
date-time: yyyy-MM-dd HH:mm:ss
static-path-pattern: /**
上面文件中配置的日期格式为yyyy-MM-dd
2、在controller
的代码如下
@RestController
public class TestController {
@GetMapping("test")
public String test(Date birthday) {
return "test!!!" + birthday;
}
}
3、可以在浏览器中输入的日期格式为
birthday=2022-09-17
2、文件上传
1、在application.yml
中配置如下
classpath:/static/
下的静态资源文件可以直接访问file://${project.upload.base-path}
映射到的本地资源文件也可以直接访问project
:为配置文件的信息2、在
maven
依赖中需要添加
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
</dependency>
commons-io
为文件操作工具类。
3、配置文件信息如下
@ConfigurationProperties("project")
@Component
@Data
public class ProjectProperties {
private Upload upload;
@Data
public static class Upload {
private String basePath;
private String imagePath;
private String videoPath;
public String getImageFullPath() {
return basePath + imagePath;
}
public String getVideoFullPath() {
return basePath + videoPath;
}
}
}
@ConfigurationProperties("project")
指定配置的名称
4、上传文件代码在controller
中实现如下
@RestController
public class TestController {
@Autowired
private ProjectProperties properties;
@PostMapping("/upload")
public String upload(String username, MultipartFile photo, HttpServletRequest request) throws Exception{
System.out.println(username);
System.out.println(photo);
String extention = FilenameUtils.getExtension(photo.getOriginalFilename());
// 目标文件
String dir = properties.getUpload().getImageFullPath();
String filename = UUID.randomUUID() + "." + extention;
File file = new File(dir + filename);
// 创建文件所在的父目录
FileUtils.forceMkdirParent(file);
// 将文件移动至目标文件
photo.transferTo(file);
System.out.println(request.getServletContext().getRealPath(""));
return "上传成功";
}
}
2.1、java中的静态资源操作
1、静态资源的映射
可以在继承自WebMvcConfigurer
类中实现addResourceHandlers
方法来对静态资源文件的映射,效果和配置文件相同
代码如下:
@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/**")
.addResourceLocations("classpath:/static/");
}
}
2、静态资源的访问-webjars
SpringBoot
支持使用webjars方式访问
例如访问jquery
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>jquery</artifactId>
<version>3.5.1</version>
</dependency>
webjars
<script src="/webjars/jquery/3.5.1/dist/jquery.min.js"></script>
3、文件下载
在controller
中添加代码如下
@RestController
public class TestController {
@GetMapping("/download")
public void download(HttpServletResponse response) throws Exception {
response.setHeader("Content-Disposition", "attachment; filename=test.txt");
// response写文件数据给客户端
try (InputStream is = new ClassPathResource("static/test.txt").getInputStream()){
IOUtils.copy(is, response.getOutputStream());
}
}
}
网友评论