반응형
Spring Boot 콘솔 기반 응용 프로그램 구조
간단한 Spring Boot 콘솔 기반 응용 프로그램을 개발하는 경우 메인 실행 코드 배치가 불분명합니다.메서드에 배치해야 합니까?아니면 메인 어플리케이션클래스가 인터페이스를 구현하고 코드를 메서드에 배치해야 합니까?
문맥으로 예를 들겠습니다.다음과 같은 [초급] 어플리케이션(인터페이스, Spring 스타일로 코드화)이 있다고 합니다.
어플.자바
public class Application {
@Autowired
private GreeterService greeterService;
public static void main(String[] args) {
// ******
// *** Where do I place the following line of code
// *** in a Spring Boot version of this application?
// ******
System.out.println(greeterService.greet(args));
}
}
GreeterService.java(인터페이스)
public interface GreeterService {
String greet(String[] tokens);
}
GreeterServiceImpl.java(실장 클래스)
@Service
public class GreeterServiceImpl implements GreeterService {
public String greet(String[] tokens) {
String defaultMessage = "hello world";
if (args == null || args.length == 0) {
return defaultMessage;
}
StringBuilder message = new StringBuilder();
for (String token : tokens) {
if (token == null) continue;
message.append(token).append('-');
}
return message.length() > 0 ? message.toString() : defaultMessage;
}
}
의 동등한 Spring Boot 버전은 다음과 같습니다.GreeterServiceImpl.java(실장 클래스)
@EnableAutoConfiguration
public class Application
// *** Should I bother to implement this interface for this simple app?
implements CommandLineRunner {
@Autowired
private GreeterService greeterService;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
System.out.println(greeterService.greet(args)); // here?
}
// Only if I implement the CommandLineRunner interface...
public void run(String... args) throws Exception {
System.out.println(greeterService.greet(args)); // or here?
}
}
표준 로더가 있어야 합니다.
@SpringBootApplication
public class MyDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MyDemoApplication.class, args);
}
}
를 실장합니다.CommandLineRunner
와 접촉하다.@Component
주석
@Component
public class MyRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
}
}
@EnableAutoConfiguration
일반적인 Spring Boot 매직이 실행됩니다.
갱신:
@jeton이 시사하는 바와 같이 최신 Springboot는 스트레이트를 구현하고 있습니다.
spring.main.web-application-type=none
spring.main.banner-mode=off
72.2의 문서를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/28199999/how-does-a-spring-boot-console-based-application-work
반응형
'programing' 카테고리의 다른 글
React-router TypeError: _this.props.이력이 정의되지 않았습니다. (0) | 2023.03.13 |
---|---|
Node.js 코드에서 MongoDB 연결을 닫지 않는 것이 권장되는 이유는 무엇입니까? (0) | 2023.03.13 |
중첩된 JSONB 필드의 개체에 대한 Postgresql 쿼리 (0) | 2023.03.13 |
Get_the_terms - 모든 투고 유형을 표시합니다. (0) | 2023.03.13 |
웹 API에 게시할 때 지원되지 않는 미디어 유형 오류 (0) | 2023.03.13 |