要求是写一个程序,处理数据库的数据:
选择了还是用springboot开发,mybatis-plus,读取之前存储的base64数据,转为图片存储到minio服务器,返回一个路径存到数据库。
简单的写了entity、mapper、service、business几个层级的文件,想要在application启动文件里面直接启动后调用business实现类的方法完成任务,但是@autowire注入的接口类为null
@Autowired
private ISealPictureService sealPictureService;//运行后为null,无法进行作业
@Override
public void dataProcessing(){
QueryWrapper<ElectronicSealPicture> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("IMAGE_BASE64_DATA","");
List<ElectronicSealPicture> list = sealPictureService.list(queryWrapper);
list.stream().forEach(electronicSealPicture -> {
electronicSealPicture.setImgPath(base64DataTransformByteArray(
electronicSealPicture.getSealId(),electronicSealPicture.getImageBase64Data()));
electronicSealPicture.setStorageMode("MINIO");
});
list.stream().forEach(electronicSealPicture -> {
sealPictureService.updateById(electronicSealPicture);
});
System.out.println("transform over");
}
找了些网上的博客等内容,这个注解那个注解的,但是都不是涉及在application启动类中。
最后看见了一篇文章拯救了我https://blog.csdn.net/qq877728715/article/details/110860306
选择了实现ApplicationRunner接口,重写run方法调用dataProcessing方法,简单又一步到位,springboot启动后就自动运行完成了。
@Override
public void run(ApplicationArguments args) throws Exception {
dataProcessing();
}
新手的开发小记录