메인 클래스에 붙어있는 @SpringBootApplication 어노테이션은
@Configuration, @EnableAutoConfiguration, @ComponentScan 3가지를 합친 것
- @Configuration: 해당 클래스가 설정 파일임을 알려주는 용도
- @EnableAutoConfiguration: 스프링의 다양한 설정이 자동으로 구성되고 완료됨
- @ComponentScan: 자동으로 컴포넌트 클래스를 검색하여 컴포넌트와 빈 클래스를 Spring Application Context에 등록함
(단, 메인 클래스가 위치한 패키지부터 이하 모든 클래스를 검색하여 Bean으로 등록)
하위 클래스가 아닌 방법으로 위치시키고 싶을 경우 @ComponentScan 어노테이션 추가
@SpringBootApplication
@ComponentScan(basePackages = {"메인클래스가 있는 패키지 위치", "추가할 패키지 위치"})
public class TestApplication {
spring:
resources:
static-locations: classpath: /변경할 폴더명/
위 방법으로 안되는 경우엔 Configuration 추가
@Configuration
public class MvcConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/templates/", "classpath:/static/")
.setCacheControl(CacheControl.maxAge(10, TimeUnit.MINUTES));
}
}
spring:
mvc:
view:
suffix: .html