[SPRING] Spring Boot : @Bean annotated 메소드 내에서 명령 행 인자 가져 오기
SPRINGSpring Boot : @Bean annotated 메소드 내에서 명령 행 인자 가져 오기
나는 스프링 부트 애플리케이션을 구축 중이며 @Bean으로 주석 된 메소드 내에서 커맨드 라인 인자를 읽을 필요가있다. 샘플 코드보기 :
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public SomeService getSomeService() throws IOException {
return new SomeService(commandLineArgument);
}
}
내 문제를 어떻게 해결할 수 있습니까?
해결법
-
==============================
1.시험
시험
@Bean public SomeService getSomeService(@Value("${property.key}") String key) throws IOException { return new SomeService(key); }
-
==============================
2.
@Bean public SomeService getSomeService( @Value("${cmdLineArgument}") String argumentValue) { return new SomeService(argumentValue); }
실행하려면 java -jar myCode.jar을 사용하십시오. --cmdLineArgument = helloWorldValue
-
==============================
3.다음과 같이 앱을 실행하는 경우 :
다음과 같이 앱을 실행하는 경우 :
$ java -jar -Dmyproperty=blabla myapp.jar
또는
$ gradle bootRun -Dmyproperty=blabla
그런 다음이 방법으로 액세스 할 수 있습니다.
@Bean public SomeService getSomeService() throws IOException { return new SomeService(System.getProperty("myproperty")); }
-
==============================
4.다음과 같이 앱을 실행할 수 있습니다.
다음과 같이 앱을 실행할 수 있습니다.
$ java -server -Dmyproperty = blabla -jar myapp.jar
코드 내의이 시스템 프로퍼티의 값에 액세스 할 수 있습니다.
from https://stackoverflow.com/questions/39269831/spring-boot-get-command-line-argument-within-bean-annotated-method by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 설정에서 빈 arraylists를 초기화 하시겠습니까? (0) | 2019.07.13 |
---|---|
[SPRING] @Autowired (required = false) 생성자에서 NoSuchBeanDefinitionException을 제공함 (0) | 2019.07.13 |
[SPRING] OAuth2.0 - 프론트 엔드와 백엔드가 다른 서버에서 실행되는 GitHub를 사용한 인증. CORS 오류 (0) | 2019.07.13 |
[SPRING] 컨트롤러없이 잭슨으로 객체를 만들 때 유효합니다. (0) | 2019.07.13 |
[SPRING] Spring에서 @Async 호출이 완료되었는지 확인하는 방법은 무엇입니까? (0) | 2019.07.13 |