所以我已经研究了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
对其进行注释即可。