오류 내용
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at co m.example.thymeleaf.ThymeleafApplication.main(ThymeleafApplication.java:13)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more
Spring boot를 연습하고 있다. 어제는 실행이 잘 됐는데 오늘은 안 된다. 건드린 부분은 따로 없다. 무엇이 조작됐는지 모르겠다. 뭔가 인식을 못하고 있는듯하다. @Controller 어노테이션 인식이 안 된다. @RequestMapping도 인식이 안 된다. 껐다가 키니까 작동이 된다? 이상하다. 이제는 다른 오류가 발생했다.
***************************
APPLICATION FAILED TO START
***************************
Description:
Web application could not be started as there was no org.springframework.boot.web.servlet.server.ServletWebServerFactory bean defined in the context.
Action:
Check your application's dependencies for a supported servlet web server.
Check the configured web application type.
Process finished with exit code 0
오류 원인 : @SpringBootApplication
package com.example.thymeleaf;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class ThymeleafApplication {
public static void main(String[] args) {
SpringApplication.run(ThymeleafApplication.class, args);
}
@GetMapping("/temp")
public String hello(){ return "Hello Layout!";}
}
@SpringBootApplication를 빼 먹었다.
컴포넌트 스캔 설정: 스프링 부트가 웹 애플리케이션을 올바르게 인식할 수 있도록 컴포넌트 스캔 설정이 필요하다. @SpringBootApplication 어노테이션이 포함된 클래스가 웹 애플리케이션과 관련된 패키지 또는 상위 패키지에 위치해 있는지 확인해야한다.
@SpringBootApplication 어노테이션은 스프링 부트 애플리케이션의 핵심 어노테이션으로, 여러 가지 설정을 자동으로 처리해주는 역할을 한다. 이 어노테이션을 사용하지 않으면 스프링 부트가 웹 애플리케이션으로 인식하지 않고 필요한 설정들을 제대로 처리하지 못한다.