Java/Spring
Service에서 Argument 사용하기
lms0806
2024. 8. 7. 20:39
728x90
반응형
Spring boot의 main을 통해 argument를 입력받는 경우가 발생할 수 있습니다.
public class Main {
public static void main(String[] args){
SpringApplication.run(SpringBootBoilerPlateApplication.class, args);
}
}
이럴 경우 args를 입력받고 시작하는데, 해당 args를 활용하는 함수를 필요로 하는 경우가 발생합니다.
public class Main {
public static void main(String[] args){
// args를 필요로 하는 경우
SpringApplication.run(SpringBootBoilerPlateApplication.class, args);
}
}
그런 경우 main 함수에서 사용하거나, main 클래스의 다른 함수에서 args를 인자로 받아 활용하는 방식으로 구현하게 됩니다.
" Main 함수는 간단하게 그저 실행하는 역할만 수행하는게 맞다"라는 생각을 하게 되었습니다.
그러면 args를 활용하는 경우에는 다른 class를 호출하여 사용해야 하냐?
Spring boot에서는 ApplicationArguments라는 것을 활용해 다른 class에서 활용할 수 있게 해줍니다.
@Service
public class SystemService {
public SystemService(ApplicationArguments args){
// args 활용
}
}
이런식으로 Main함수를 통해 Spring boot가 실행되면서 Service가 실행될 때, ApplicationArguments를 통해 main에서 받은 args를 받아와 처리할 수 있게 해줍니다.
https://docs.spring.io/spring-boot/api/java/org/springframework/boot/ApplicationArguments.html
ApplicationArguments (Spring Boot 3.3.2 API)
Return whether the set of option arguments parsed from the arguments contains an option with the given name.
docs.spring.io
728x90
반응형