首页 > 解决方案 > Spring Boot代码,工作流程是->上传文件-然后篡改文件-下载文件

问题描述

我正在 spring.io ( https://spring.io/guides/gs/spring-boot/ ) 上做以下教程,这是我的第一个 spring-boot 应用程序,我是一名 java 开发人员。我正在使用 Maven 方法并将其部署为独立的 jar(实际上与用例无关)。

关于代码的问题与结构化有关,归结为“我应该把我的'业务逻辑'放在哪里?”的问题。我想应用的逻辑涉及以下 2 个用例。

  1. 我想转换上传的 csv 文件(或 excel 文件)中的 2 列,并让用户下载“转换后的”文件。
  2. 如果用户上传图像文件,我想检查图像中是否有任何 EXIF 标记(例如坐标 ++) - 如果有,我想将该信息存储在数据库中。

或者当涉及到我的用例时,我应该更广泛地了解 Spring MVC 或类似技术吗?

最好的,英戈

现在我正在运行 Ubuntu 18.04 并使用 java 1.8、maven 3.0.5 和 Netbeans 8.2。

标签: springspring-bootspring-mvcspring-data-jpa

解决方案


要回答您的问题:

“我应该把我的'业务逻辑'放在哪里?”

您基本上希望您的控制器只处理您的请求,并让另一个类处理逻辑,这在 Spring 术语中是一个服务。

你会有一个MyService.java类似这样的文件:

@Service
class MyService {

    public MyData handleCSV(<your parameters>) {
        return ...
    }

}

在您的控制器中,您可以注入您的服务并简单地使用它:

@Controller
class MyController {

    @Autowired
    private MyService myService; 

}

而已。在这个控制器的任何地方,您都可以调用 myService 实例。


推荐阅读