在spring应用程序中放置文件控制器的位置



所以我已经研究了spring应用程序的不同层,到目前为止,对于我的第一个spring应用程序,我认为我做得很好。我不知道把FileController类放在哪里。它可能根本不是控制器,但更像是一种服务,我不确定。也许这只是一个坏主意,我真的应该使用类似Spring批处理的东西。我只是觉得我不需要那种可伸缩性。我想我可能做的最复杂的事情是读写一个最多5000行的excel文件。下面的文件控制器我会扩展到读写文本和.xls文件。这应该是一个控制器并停留在springmvcweb应用程序的控制器目录中,还是应该是服务并在服务目录中,或者应该是bean和其他目录?文件控制器将只由服务对象访问,该服务对象将由Spring MVC控制器通过post或get请求调用。我认为我的经验不足在这里真的很突出。

基本上我应该使用哪个注释:@Controller、@Bean、@Service?

我读到@Controller注释主要只用于请求映射。但拥有非基于网络的控制器是有意义的。

我应该只使用Spring Batch吗?

类示例

public class FileController {
List<String> readFile(String filename) { //some impl }
String readFile(String filename) { //some impl }    
void writeFile(List<String> content) { //some impl }
void writeFile(String content) { //some impl }
void close() { //some imple }  
}

我也想过在使用的方法中添加对文件的读取和写入,但我认为这是一种糟糕的方法,因为我可能在未来需要相同的逻辑DRY。

@Controller注释用于将方法映射到URI和HTTP mehtod的bean。这样的bean通常位于web层的顶部。

由于您的bean不会从web访问,所以它不能是@Controller。在我看来,这是一种服务。因此,只需将其重命名为FileService,并用@Service对其进行注释即可。

最新更新