spring - Spring Boot代码,工作流程是->上传文件-然后篡改文件-下载文件
问题描述
我正在 spring.io ( https://spring.io/guides/gs/spring-boot/ ) 上做以下教程,这是我的第一个 spring-boot 应用程序,我是一名 java 开发人员。我正在使用 Maven 方法并将其部署为独立的 jar(实际上与用例无关)。
关于代码的问题与结构化有关,归结为“我应该把我的'业务逻辑'放在哪里?”的问题。我想应用的逻辑涉及以下 2 个用例。
- 我想转换上传的 csv 文件(或 excel 文件)中的 2 列,并让用户下载“转换后的”文件。
- 如果用户上传图像文件,我想检查图像中是否有任何 EXIF 标记(例如坐标 ++) - 如果有,我想将该信息存储在数据库中。
或者当涉及到我的用例时,我应该更广泛地了解 Spring MVC 或类似技术吗?
最好的,英戈
现在我正在运行 Ubuntu 18.04 并使用 java 1.8、maven 3.0.5 和 Netbeans 8.2。
解决方案
要回答您的问题:
“我应该把我的'业务逻辑'放在哪里?”
您基本上希望您的控制器只处理您的请求,并让另一个类处理逻辑,这在 Spring 术语中是一个服务。
你会有一个MyService.java
类似这样的文件:
@Service
class MyService {
public MyData handleCSV(<your parameters>) {
return ...
}
}
在您的控制器中,您可以注入您的服务并简单地使用它:
@Controller
class MyController {
@Autowired
private MyService myService;
}
而已。在这个控制器的任何地方,您都可以调用 myService 实例。
推荐阅读
- java - Toolbar is not showing in MainActivity front screen. Can anyone help me?
- python - “NoneType”对象不可迭代 - 数据导入
- javascript - 'chromedriver' 可执行文件需要在 PATH 中,但它已经存在
- pytorch - 火炬。优化模型的输入:尝试第二次向后遍历图形,但缓冲区已被释放
- apache-kafka - Kafka compare consecutive values for a key
- node.js - How to shift a particular document from one collection to another using mongoose?
- java - 为什么将null分配给节点不会删除链表中的该节点
- css - How to use parent div font color instead of child
- javascript - how to quick up the process of displaying images in React coming from backend (Django Rest)
- python - Difference in run time complexity of two seemingly similar solutions