学习Java - 如何根据类型选择不同的服务bean?

时间:2018-06-15 05:48:11

标签: java spring service spring-bean

我有一个界面和一个类:

public interface FileProcessingService {
   String NAME = "fileProcessingService";

   void processFile(FileDescriptor fileDescriptor);
}

public class FileDescriptor(){
   protected File file;
   protected String type;
} 

我想要做的是让它根据filedescriptor中的内容处理不同的文件类型 是否可以为每种文件类型使用不同的服务bean。 例如说我有以下文件类型:

Customer.txt
Supplier.txt

为每个服务bean提供不同的服务bean吗?

如下:

@Service(FileProcessingService.NAME)
public class FileProcessingServiceBean implements FileProcessingService {

   @Override
   public boolean processFile(FileDescriptorExt fileDescriptor) {
      return false;
   }
}

public class CustomerFileServiceBean extends FileProcessingServiceBean{
   @Override
   public boolean processFile(FileDescriptorExt fileDescriptor) {
      System.out.println("IN CUSTOMER PROCESSOR");
      return false;
   }
}

public class SupplierFileServiceBean extends FileProcessingServiceBean{
   @Override
   public boolean processFile(FileDescriptorExt fileDescriptor) {
      System.out.println("IN SUPPLIER PROCESSOR");
      return false;
   }
}

所以我可以致电

Filedescriptor fd = new FileDescriptor();
fd.setType("Customer");
fd.setFile(Customer.txt);
fileProcessingService.processFile(fd);

让它使用CustomerFileServiceBean自动处理文件。如果文件不是客户文件,请让它通过超级FileProcessingServiceBean ...

进行处理

或者这不是正确的方法吗?就像我如何选择适当的bean一样带注释还是这样......?我想它会降级服务 - 可能吗?

0 个答案:

没有答案