#35 springboot: environment variables - command line
This commit is contained in:
28
springboot/external/src/main/java/hello/CommandLineBean.java
vendored
Normal file
28
springboot/external/src/main/java/hello/CommandLineBean.java
vendored
Normal 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))
|
||||
);
|
||||
}
|
||||
}
|
||||
14
springboot/external/src/test/java/hello/external/CommandLineV1.java
vendored
Normal file
14
springboot/external/src/test/java/hello/external/CommandLineV1.java
vendored
Normal 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));
|
||||
}
|
||||
}
|
||||
37
springboot/external/src/test/java/hello/external/CommandLineV2.java
vendored
Normal file
37
springboot/external/src/test/java/hello/external/CommandLineV2.java
vendored
Normal 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);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user