스프링 애플리케이션에서 파일을 다루는 것은 매우 일반적인 작업입니다. 파일 업로드, 다운로드, 저장 등 다양한 기능을 구현해야 할 때가 있습니다. 이를 위해 스프링은 여러 가지 방법을 제공하며, 이번에는 파일을 다루는 스프링 애플리케이션의 일반적인 구조와 각 파일의 역할에 대해 설명하겠습니다.
![스프링 파일 처리 구조도]
// UserController.java
@Controller
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
userService.saveFile(file);
return "redirect:/";
}
}
// UserService.java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public void saveFile(MultipartFile file) {
// 파일 저장 로직 (예: 파일 시스템에 저장, S3에 업로드 등)
// 파일 정보를 데이터베이스에 저장
FileEntity fileEntity = new FileEntity();
fileEntity.setOriginalFileName(file.getOriginalFilename());
// ...
userRepository.save(fileEntity);
}
}
// FileEntity.java
@Entity
public class FileEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String originalFileName;
// ...
}
스프링을 이용하여 파일을 다루는 애플리케이션을 구축하는 것은 생각보다 복잡하지 않습니다. 위에서 설명한 구조를 기반으로 하여 필요한 기능을 추가하고 커스터마이징하면 다양한 파일 처리 시나리오에 적용할 수 있습니다.
스프링에서 index.html 대신 .do로 요청하는 방법 (1) | 2025.01.16 |
---|---|
API 구조 설계 수정 제안 (0) | 2025.01.16 |
스프링과 MyBatis (0) | 2025.01.16 |
DTO와 VO (0) | 2025.01.16 |
어노테이션? 레고 블록 (0) | 2025.01.16 |