#35 springboot: environment variables - command line

This commit is contained in:
haerong22
2023-03-15 04:18:51 +09:00
parent ae537d78f4
commit 0b2f865a14
3 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
package hello;
import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Set;
@Slf4j
@Component
@RequiredArgsConstructor
public class CommandLineBean {
private final ApplicationArguments arguments;
@PostConstruct
public void init() {
log.info("source {}", List.of(arguments.getSourceArgs()));
log.info("optionNames {}", arguments.getOptionNames());
Set<String> optionNames = arguments.getOptionNames();
optionNames.forEach(
optionName -> log.info("option args {}={}", optionName, arguments.getOptionValues(optionName))
);
}
}

View File

@@ -0,0 +1,14 @@
package hello.external;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
@Slf4j
public class CommandLineV1 {
// dataA dataB
public static void main(String[] args) {
Arrays.stream(args).forEach(arg -> log.info("arg = {}", arg));
}
}

View File

@@ -0,0 +1,37 @@
package hello.external;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.DefaultApplicationArguments;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
@Slf4j
public class CommandLineV2 {
// --url=devdb --username=dev --password=1234 mode=on
public static void main(String[] args) {
Arrays.stream(args).forEach(arg -> log.info("arg = {}", arg));
DefaultApplicationArguments appArgs = new DefaultApplicationArguments(args);
log.info("SourceArgs = {}", List.of(appArgs.getSourceArgs()));
log.info("NonOptionsArgs = {}", appArgs.getNonOptionArgs());
log.info("OptionsNames = {}", appArgs.getOptionNames());
Set<String> optionNames = appArgs.getOptionNames();
optionNames.forEach(
optionName -> log.info("option arg {}={}", optionName, appArgs.getOptionValues(optionName))
);
List<String> url = appArgs.getOptionValues("url");
List<String> username = appArgs.getOptionValues("username");
List<String> password = appArgs.getOptionValues("password");
List<String> mode = appArgs.getOptionValues("mode");
log.info("url={}", url);
log.info("username={}", username);
log.info("password={}", password);
log.info("mode={}", mode);
}
}