spring-boot 어플리케이션에 @EnableWebMvc가 필요 없는 이유
그래서 저는 작은 어플을 썼고, 기본을 익히기 위해 최대한 간단하게 만들었습니다.Config.java 파일로 간단한 mvc 어플리케이션을 만들었는데, 어플리케이션이 에러를 발생시켜야 한다고 생각했을 때 실제로 동작합니다.
여기 pom.xml이 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
뷰 리졸바만 있는 마이 컨피규레이션파일:
package com.example.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
@Configuration
public class DemoConfig {
@Bean
public ViewResolver internalResourceViewResolver() {
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setViewClass(JstlView.class);
bean.setPrefix("/templates/");
bean.setSuffix(".html");
return bean;
}
}
메인 파일
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
마지막으로 컨트롤러 클래스: package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TestController {
@GetMapping(value="home")
public String home() {
return "home";
}
}
Application.properties
server.servlet.context-path=/demo
, ,어어 so so so so so so so so so so so so so so so so so가 필요해요.기억할 수 있듯이mvc:annotation- driven 또는 web.xml 또 。@enablewebmvc@getmapping ★★★★★★★★★★★★★★★★★」@controller하지만 내 어플리케이션은 완전히 작동한다.떻게 오오 ?생 생? ???
@Spring Boot Application은 다음 사항을 모두 추가하는 편리한 주석입니다.
- @Configuration은 응용 프로그램콘텍스트의 bean 정의 소스로서 클래스에 태그를 붙입니다.
- @EnableAutoConfiguration은 클래스 경로 설정, 기타 콩 및 다양한 속성 설정에 따라 콩 추가를 시작하도록 스프링 부트에게 지시합니다.
- 보통 Spring MVC 앱용으로 @EnableWebMvc를 추가합니다만, SpringBoot에서는 클래스 패스에 spring-webmvc가 표시되었을 때 자동으로 추가됩니다.그러면 응용 프로그램이 웹 응용 프로그램으로 플래그가 지정되고 Dispatcher Servlet 설정 등의 주요 동작이 활성화됩니다.
- @ComponentScan은 Spring에게 hello 패키지에서 다른 컴포넌트, 구성 및 서비스를 검색하도록 지시하여 컨트롤러를 찾을 수 있도록 합니다.
스프링 부츠 만능
봄 부츠는 봄이다: 봄이다.
실제로, Spring Boot에서는, 애플리케이션의 동작에 필요한 설정을 가능한 한 삭감할 수 있습니다.@SpringBootApplicationSpring 탑재 어플리케이션으로 만들기 위해 도입된 주석이 좋은 예입니다.
또한 Spring Boot에서는 패키징 의존성과 스프링 구성을 위한 일부 시작 프로그램을 제안합니다.
의 경우, 당신이 한 바와 , 「」는 「」입니다.spring-boot-starter-web종속성으로서 Spring MVC 구성 및 Spring을 사용하는 웹 애플리케이션과 관련된 기타 사항이 설정됩니다.
이 문서에는 실제로 다음과 같이 기술되어 있습니다.
11.3.2 @Enable (활성화)자동 구성 주석
spring-boot-starter-web에 Tomcat 및 Spring MVC가 추가되었기 때문에 자동 설정에서는 웹 응용 프로그램을 개발하고 있는 것으로 간주하고 그에 따라 Spring을 설정합니다.
@SpringBootApplication 부팅 어플리케이션을 사용하고 있기 때문에 기본적으로 주석 기반 어플리케이션(mvc:notation-drived)을 활성화합니다.설정을 지정할 필요는 없습니다.@Spring Boot Application https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-using-springbootapplication-annotation.html에 대해 읽어보십시오.
언급URL : https://stackoverflow.com/questions/51008382/why-spring-boot-application-doesnt-require-enablewebmvc
'programing' 카테고리의 다른 글
| 반응 useEffect 원인:마운트 해제된 구성 요소에서 반응 상태 업데이트를 수행할 수 없음 (0) | 2023.03.08 |
|---|---|
| 키로 특정 JSON 값을 찾는 방법 (0) | 2023.03.08 |
| ReactJs의 prevState란 무엇입니까? (0) | 2023.03.08 |
| 스프링 데이터, 중첩된 객체의 속성으로 찾기 (0) | 2023.03.08 |
| Django에서 Javascript DOM으로 객체 전달 (0) | 2023.03.08 |