직접 ServletInitializer를 생성해서 만드는 방식은 old fashion.
우리는 SpringBootApplication (메인 클래스)를 이용해서 서블릿을 띄울 수 있다.
그간 오지게 헤매게 하던 Spring MVC 설정을 SpringBoot 가 제공하는 AutoConfiguration 을 이용해서 아주 단순하게 구현 가능해진다.
@SpringBootApplication
@ComponentScan(basePackages = "com.devcourse.springorder.customer")
public class SpringOrderApplication {
public static void main(String[] args) {
SpringApplication.run(SpringOrderApplication.class, args);
}
}
spring:
datasource:
url: jdbc:mysql://localhost/order_mgmt
username: root
password: root1234!
thymeleaf:
view-names: "views/*"
prefix: "/WEB-INF/"
server:
servlet:
context-path: /springorder
@Configuration
public class MvcConfig implements WebMvcConfigurer {
// CORS (preflight) 설정
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("*");
}
// http 응답을 xml 형식으로 받게 해주는 메시지 컨버터
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
var messageConverter = new MarshallingHttpMessageConverter();
var xStreamMarshaller = new XStreamMarshaller();
messageConverter.setMarshaller(xStreamMarshaller);
messageConverter.setUnmarshaller(xStreamMarshaller);
converters.add(0, messageConverter);
}
}
Conditional Beans with Spring Boot
💡 참고