Я написал ниже весеннее загрузочное приложение с аргументами.
java jar ... --credential="path\credentials.properties"
Беги так из консоли. Я получаю путь к файлу свойств из консоли и все время, когда мне нужно свойство, сначала загружаю файл свойств, а затем получаю свое свойство с моим ключом. Как я могу избежать этого? Я просто хочу загрузить файл свойств один раз, а потом всегда хочу использовать этот первый загруженный файл. Я не хочу загружать снова и снова. Вот так я не хочу называть его свойства.
@SpringBootApplication
@Slf4j
class ProRunner implements CommandLineRunner {
@Autowired
AnalyzeManager analyzeManager;
@Autowired
AuthService authService;
@Autowired
WriterService writerService;
static void main(String[] args) {
SpringApplication.run(ProRunner.class, args);
}
@Override
void run(String... args) throws Exception {
try {
String token = authService.postEntity("url", args).token;
Map dataSet = analyzeManager.bulkCreate(args);
writerService.write(args, dataSet)
} catch (Exception e) {
e.printStackTrace();
}
}
}
В каждом сервисе (authService, analyManager, writerService) я загружаю свойства в соответствии с аргументами. Позже продолжу мой процесс.
Чтобы загрузить свойства, я создаю метод Util и вызываю его каждый раз.
public class Utils {
public static Properties getProperties(String...args) throws IOException {
File file = new File(args[0]);
Properties properties = new Properties();
InputStream in = new FileInputStream(file);
properties.load(in);
return properties;
}
}
Файл свойств содержит такие вещи:
- username
- password
- outputFileName
- startDate
- endDate
...