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
반응형