これが私のFileStorageProperties
クラスです。
@Data
@ConfigurationProperties(prefix = "file")
public class FileStorageProperties {
private String uploadDir;
}
_
これは私に言っています: @EnableConfigurationPropertiesを介して登録されていないか、Spring Component としてマークされています。
そしてここで私のFileStorageService
:
@Service
public class FileStorageService {
private final Path fileStorageLocation;
@Autowired
public FileStorageService(FileStorageProperties fileStorageProperties) {
this.fileStorageLocation = Paths.get(fileStorageProperties.getUploadDir())
.toAbsolutePath().normalize();
try {
Files.createDirectories(this.fileStorageLocation);
} catch (Exception ex) {
throw new FileStorageException("Could not create the directory where the uploaded files will be stored.", ex);
}
}
public String storeFile(MultipartFile file) {
// Normalize file name
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
try {
// Check if the file's name contains invalid characters
if(fileName.contains("..")) {
throw new FileStorageException("Sorry! Filename contains invalid path sequence " + fileName);
}
// Copy file to the target location (Replacing existing file with the same name)
Path targetLocation = this.fileStorageLocation.resolve(fileName);
Files.copy(file.getInputStream(), targetLocation, StandardCopyOption.REPLACE_EXISTING);
return fileName;
} catch (IOException ex) {
throw new FileStorageException("Could not store file " + fileName + ". Please try again!", ex);
}
}
public Resource loadFileAsResource(String fileName) {
try {
Path filePath = this.fileStorageLocation.resolve(fileName).normalize();
Resource resource = new UrlResource(filePath.toUri());
if(resource.exists()) {
return resource;
} else {
throw new MyFileNotFoundException("File not found " + fileName);
}
} catch (MalformedURLException ex) {
throw new MyFileNotFoundException("File not found " + fileName, ex);
}
}
}
_
これは私にエラーが発生します:がfound の型のBeanを起動できませんでした。
そしてこれが私のプロジェクト構造です:
そして私がそれを実行しようとすると、それは私に与えます:
アプリケーションは起動できませんでした
説明:
Com.mua.cse616.Service.FileStorageServiceのコンストラクタのパラメータ0は、見つからなかったタイプ 'com.mua.cse616.property.FileStorageProperties'のBeanを必要としました。
注入ポイントには、次の注釈があります。 - @ org.springFramework.Beans.Factory.Ankotation.Autowired(必須= true)
アクション:
設定に 'com.mua.cse616.property.fileStorageProperties'の種類のBeanを定義することを検討してください。
どうやってこれを解決できますか?
fileStoragePropertiesクラスでBellow注釈を追加します。
@成分