五、编程题 1、编程实现配置文件属性值的注入。 (1)编写实体类People,有id、name两个属性 (2)使用@ConfigurationProperties注入属性 (3)编写全局配置文件添加属性对应的属性值 (4)编写测试程序,输出People类型的对象 2、编程实现文件的上传。 (1)编写上传表单页面 (2)全局配置文件配置上传参数配置 (3)Java代码实现上传功能 3、编程实现配置文件属性值的注入。 (1)编写实体类Animal,有id、name两个属性 (2)使用@ConfigurationProperties注入属性 (3)编写全局配置文件添加属性对应的属性值 (4)编写测试程序,输出People类型的对象 4、编程实现文件的下载功能。 (1)添加下载工具依赖 (2)编写下载页面 (3)编写Java代码实现下载功能
时间: 2024-01-10 14:03:36 浏览: 85
简单实体类和xml文件的相互转换方法
很抱歉,作为AI语言模型,我无法编写完整的程序。但我可以为您提供一些思路和建议。
1、配置文件属性值的注入
(1)实体类People:
```
public class People {
private int id;
private String name;
// 省略get、set方法
}
```
(2)使用@ConfigurationProperties注入属性:
```
@Configuration
@ConfigurationProperties(prefix = "people")
public class PeopleConfig {
private int id;
private String name;
// 省略get、set方法
// 注意:属性名需与配置文件中的属性名对应
}
```
(3)全局配置文件application.yml:
```
people:
id: 1
name: Jack
```
(4)测试程序:
```
@RunWith(SpringRunner.class)
@SpringBootTest
public class PeopleTest {
@Autowired
private PeopleConfig peopleConfig;
@Test
public void testPeople() {
int id = peopleConfig.getId();
String name = peopleConfig.getName();
People people = new People(id, name);
System.out.println(people);
}
}
```
2、文件的上传
(1)上传表单页面:
```
<form method="POST" action="/upload" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">上传</button>
</form>
```
(2)全局配置文件application.yml:
```
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
```
(3)Java代码实现上传功能:
```
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
String fileName = file.getOriginalFilename();
try {
byte[] bytes = file.getBytes();
Path path = Paths.get(UPLOAD_FOLDER + fileName);
Files.write(path, bytes);
return "文件上传成功!";
} catch (IOException e) {
e.printStackTrace();
}
}
return "文件上传失败!";
}
```
3、配置文件属性值的注入
(1)实体类Animal:
```
public class Animal {
private int id;
private String name;
// 省略get、set方法
}
```
(2)使用@ConfigurationProperties注入属性:
```
@Configuration
@ConfigurationProperties(prefix = "animal")
public class AnimalConfig {
private int id;
private String name;
// 省略get、set方法
// 注意:属性名需与配置文件中的属性名对应
}
```
(3)全局配置文件application.yml:
```
animal:
id: 2
name: Tom
```
(4)测试程序:
```
@RunWith(SpringRunner.class)
@SpringBootTest
public class AnimalTest {
@Autowired
private AnimalConfig animalConfig;
@Test
public void testAnimal() {
int id = animalConfig.getId();
String name = animalConfig.getName();
Animal animal = new Animal(id, name);
System.out.println(animal);
}
}
```
4、文件的下载
(1)添加下载工具依赖:
```
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
```
(2)下载页面:
```
<a href="/download/file.pdf">下载</a>
```
(3)Java代码实现下载功能:
```
@GetMapping("/download/{fileName:.+}")
public void downloadFile(@PathVariable String fileName, HttpServletResponse response) {
try {
File file = new File(DOWNLOAD_FOLDER + fileName);
InputStream inputStream = new FileInputStream(file);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
IOUtils.copy(inputStream, response.getOutputStream());
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
}
```
阅读全文