Привет я реализовал простую процедуру загрузки файлов с помощью пружины загрузки ConfigurationProperties аннотацию, так что я могу загрузить каталог из моего файла конфигурации YAML:Использование Spring @ConfigurationProperties дает NullPointer при выполнении тестов, JHipster приложение
Service:
@Service
public class FileSystemStorageService implements StorageService {
private final Logger log = LoggerFactory.getLogger(FileSystemStorageService.class);
private final Path pictureLocation;
@Autowired
public FileSystemStorageService(StorageProperties storageProperties) {
pictureLocation = Paths.get(storageProperties.getUpload());
}
И StorageProperties:
@Component
@ConfigurationProperties("nutrilife.meals")
public class StorageProperties {
private String upload;
public String getUpload() {
return upload;
}
public void setUpload(String upload) {
this.upload= upload;
}
}
В файле YAML у меня есть:
nutrilife:
meals:
upload: /$full_path_to_my_upload_dir
Это отлично работает в обычном пружинных загрузках среды выполнения, но проблема начинается, когда я пытаюсь запустить свои интеграционные тесты, он выдает ошибку:
java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileSystemStorageService' defined in file [/home/mmaia/git/nutrilife/build/classes/main/com/getnutrilife/service/upload/FileSystemStorageService.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.getnutrilife.service.upload.FileSystemStorageService]: Constructor threw exception; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:279)
...
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.getnutrilife.service.upload.FileSystemStorageService]: Constructor threw exception; nested exception is java.lang.NullPointerException
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154)
Так в основном во время тестов конфигурация YAML файл выглядит, как это не подбирается должным образом. Я новичок в Spring, и я застрял в этом вопросе пару часов, не знаю, как это исправить. Есть идеи?
Спасибо.
следующий работал: @value («загрузить»), так что полный осущ, как это работает и с тестами: @Component @ConfigurationProperties ("nutrilife .meals ") StorageProperties общественного класса { /** * расположение папки для хранения файлов */ @value (" загрузить ") частной загрузки строк; ... Пожалуйста, исправьте свой ответ как @Value («upload») поверх свойства, чтобы я мог отметить его как правильно. Спасибо. –
Маркос Майя, привет спасибо. Сделанный –