我有一个界面和一个类:
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一样带注释还是这样......?我想它会降级服务 - 可能吗?