@Component public class MyFtpPlet extends DefaultFtplet { private static Logger logger = LoggerFactory.getLogger(MyFtpServer.class); @Autowired private ResUploadedService resUploadedService; private static MyFtpPlet myFtpPlet; @PostConstruct //通过@PostConstruct实现初始化bean之前进行的操作 public void init() { myFtpPlet = this; myFtpPlet.resUploadedService = this.resUploadedService; }
@Override public FtpletResult onUploadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { ResUploaded resUploaded = new ResUploaded(); resUploaded.setUuid(UUIDUtil.getUuid()); resUploaded.setFileName(fileName); resUploaded.setUploadTime(new Date()); resUploaded.setFileDir(fileDir); resUploaded.setFilePath(rootPath.replaceAll("\\\\", "/")); resUploaded.setFileRepath(filePath); resUploaded.setStatus(0); myFtpPlet.resUploadedService.recordUploadInfo(resUploaded); logger.info("UUID:" + resUploaded.getUuid() + "FileName:" + fileName + "记录文件信息成功!"); return super.onUploadEnd(session, request); }
}
需要注意:注入类的调用方法是
myFtpPlet.resUploadedService.recordUploadInfo(resUploaded);
目前发现除了带有@Controller @Service @Configuration 可以自动注入成功
其他的自定义普通类只能 已这种方式去调用!