Я пытаюсь использовать @ PropertySource для загрузки свойств из файла .properties и использования их в моем Spring-пакете.
У меня естьфайл Config.java, который должен загружать эти свойства, файлы application.properties с данными в нем, и я пытаюсь получить доступ к этим данным с помощью экземпляра Config.java в другом файле.Но похоже, что объект Config пуст.
Это файл Config.java :
package demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
@Configuration
@PropertySource("classpath:config/application.properties")
public class Config {
@Autowired Environment env;
//Attempt number 1
@Value("${source.name}")
public String name;
//Attempt number 2
public String getSource(){
return env.getProperty("source.name");
}
}
Файл application.properties :
source.name="OPTIQ"
И еще один файл, в котором я пытаюсь добраться до этой конкретной строки (я удалил много процессов, но важны только эти строки):
public class Process{
@Autowired Config configuration;
String source;
public setSource(){
this.source = configuration.source;
// this.source = configuration.getSource();
}
}
результат будет "OPTIQ", но объект конфигурации кажется пустым или не инициализирован, поэтому я предполагаю, что мне здесь не хватает одного шага или я не полностью понимаю, как работает @ PropertySource .
У меня нет ошибки доступа к файлу, он, похоже, находит файл.
Первый вопрос: какая попытка правильная:
- номер 1 с @Value?
- номер 2with public getSource ()?
Второй вопрос: что мне нужно изменить, чтобы сделать это правильно?