Похоже, вам нужны свойства как java Файловый объект, чтобы соответствовать подписи вашей библиотеки SMTP. Один из способов сделать это - просто прочитать свойства как ресурс classpath.
@Value("classpath:data/application.properites")
Resource resourceFile;
Оттуда вы можете преобразовать в файл с помощью вызова getFile
и передать его в библиотеку.
Однако, вам может быть лучше создать объект ConfigurationProperties
и просто сгенерировать файл программно с помощью FileWriter и передать его вместе. Было бы более декларативным и более понятным в реализации именно то, что происходит.
Чтобы добавить немного больше подробностей о свойствах конфигурации. Вы могли бы сделать что-то вроде этого:
@Configuration
@ConfigurationProperties(prefix = "smtp")
public class ConfigProperties {
private String host;
private int port;
private String username;
// other smtp props
// standard getters and setters
public File propsAsFile() {
Properties props = new Properties();
props.setProperty("smtp.host", host);
props.setProperty("smtp.port", port);
...
File temp = File.createTempFile("xyz",".properties");
FileOutputStream propsStream = new FileOutputStream(temp)
prop.store(propsStream, null);
}
}
Также @Kayaman правильно в комментариях. Только go через эту файловую гимнастику, если вам это абсолютно необходимо (кажется маловероятным, что вам нужно все это, но зависит от используемой вами библиотеки)
Подробнее о ConfigurationProperties https://www.baeldung.com/configuration-properties-in-spring-boot