所以我已经研究过弹簧应用的不同层次,到目前为止我的第一个弹簧应用程序,我认为我做得非常好。我很困惑在哪里放一个FileController类。它可能根本不是一个控制器,而是更多的服务,我不确定。也许这只是一个坏主意,我应该真正使用类似Spring批次的东西。我只是觉得我不需要那种类型的可扩展性。我认为我可能做的最复杂的事情是读取和写入最多5,000行的excel文件。我下面的文件控制器将扩展为读取和写入文本和.xls文件。它应该是一个控制器并保留在spring mvc Web应用程序的控制器目录中,还是应该是服务并位于服务目录中,还是应该是bean和其他目录?文件控制器只能由一个服务对象访问,该服务对象将由Spring MVC控制器通过post或get请求调用。我认为我的缺乏经验真的在这里闪耀。
基本上我应该使用哪个注释:@ Controller,@ Bean,@ Service?
我读到@Controller注释主要仅用于请求映射。但是,拥有非基于Web的控制器是有意义的。
我应该只使用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。
答案 0 :(得分:3)
@Controller
注释用于将方法映射到URI和HTTP mehtod的bean。这种豆通常位于网络层的顶部。
由于您的bean无法通过网络访问,因此无法@Controller
。从我的意见来看,这是一项服务。因此,只需将其重命名为FileService
,然后使用@Service
进行注释。