본문 바로가기
반응형

SpringBoot37

SpringBoot WebConfig @EnableWebMvc, WebMvcConfigurer SpringBoot에서 WebConfig 설정 시 @EnableWebMvc, WebMvcConfigurer를 설정하는것을 자주 보는데 지금까지 확인한 내용만 정리해본다 먼저 @EnableWebMvc를 사용하거나 WebMvcConfigurer를 구현하지 않으면 아래와 같이 WebConfig 설정 시 Bean을 직접 등록해줘야하는 등으로 권장하지 않는 방법이라고 한다 @Configuration public class WebConfig { @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.s.. 2022. 1. 19.
SpringBoot static resource 설정 SpringBoot에서 정적 리소스(html, js, css, image 등) 설정 방법 기본 정적 리소스 경로는 아래와 같다 classpath:/META-INF/resources/ classpath:/resources/ classpath:/static/ classpath:/public/ 테스트를 위해 main/java/resources 경로에 static/html 폴더를 생성하고 html 파일을 하나 작성하고 http://localhost:8080/html/static.html 호출을 하면 간단히 확인 가능하다 정적 리소스 URL pattern 변경 정적리소스는 기본적으로 루트(/**)로 매핑이 되는데 변경을 할 경우 application.yml에서 다음과 같이 static-path-pattern을 설.. 2022. 1. 19.
SpringBoot EhCache JavaConfig설정 1. pom.xml 설정 org.springframework.boot spring-boot-starter-cache net.sf.ehcache ehcache 2.10.6 2. Cache Config 설정 @EnableCaching @Configuration public class CacheConfig { @Bean public EhCacheCacheManager ehCacheCacheManager() { net.sf.ehcache.config.Configuration configuration = new net.sf.ehcache.config.Configuration(); // path는 DiskStoreConfiguration 클래스의 ENV enum 참조하거나 PhysicalPath로 설정 config.. 2022. 1. 11.
addViewControllers()로 불필요 Controller 로직 제거 Controller에서 별다른 로직없이 단순 view 매핑 및 redirect가 필요한 경우 addViewControllers() 메소를 Override하여 설정 1. View 호출 @GetMapping("/hello") public String hello() { return "hello"; } 위와 같은 Controller 로직은 아래와 같이 WebConfig addViewController(), setViewName()으로 설정 가능 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registr.. 2022. 1. 10.
SpringBoot Multi Servlet 추가 MVC설정 분리 테스트 SpringBoot 서블릿을 추가하기 위해 ServletRegistrationBean을 등록하여 테스트 진행 프로젝트 기본 구조는 아래와 같이 잡았고 my패키지에 있는 컨트롤러(MyController) 및 MVC 설정(MyWebConfig)을 분리하고자 한다. 어플리케이션 메인에서는 기본 서블릿에 포함되지 않게 MyController, MyWebConfig를 컴포넌트 스캔에서 제외했다. 그리고 ServletRegistrationBean을 등록하여 MyWebConfig를 context에 등록하고 기타 서블릿 설정을 한다. 참고로 addUrlMappings에서 "/my/**" 와 같이 "*"는 동작하지 않아 MyController의 모든 URL을 등록해줬다. @SpringBootApplication @Com.. 2022. 1. 4.
SpringBoot 설정에 따른 동적 빈 생성 SpringBoot application.yml 설정에 따라 빈을 동적으로 등록/제외해야 하는 경우 @ConditionalOnProperty 어노테이션을 사용해 간단히 처리 할 수 있다. 예를 들어 아래와 같이 application.yaml있고, 'sample.enable' 가 true일 경우만 특정 빈을 생성해야 하는 경우 아래 예시와 같이 설정을 한다. 아래와 같이 선언하게 되면 sample.enable이 true인 경우 SampleProp빈이 Spring Context에 등록이 된다. @Bean @ConditionalOnProperty(value = "sample.enable", havingValue = "true", matchIfMissing = false) public SampleProp sam.. 2021. 12. 9.
SpringBoot application.yml 리스트, 객체로 불러오기(@ConfigurationProperties) SpringBoot에서 application.yml 내용을 가져와서 사용해야하는 경우 일반적으로 String, Integer이 아닌 List나 객체 형태로 가져오는 방법을 정리해본다. List 불러오기 application.yml에서 아래와 같이 ",'로 구분해서 각 항목에 여러 개의 item을 등록한다. 한줄로 ","로만 구분해서 작성하면 파악하기가 쉽지 않은 경우도 있는데 이럴 때는 구분자는 동일하게 하고 "," 멀티라인으로 작성해도 된다. 간단히 테스트 케이스로 application.yml에 선언한 내용을 출력해본다. 결과는 아래와 같이 잘 가져오고 출력된다. 객체 불러오기 applicaton.yml 설정 내용을 각각 개별적으로 가져오기 보다 여러 개를 하나의 세트형태로 가져와야 하는 경우 객체 형.. 2021. 12. 9.
SpringBoot 외장Tomcat과 SpringBootServletInitializer SpringBoot를 사용하면 일반적으로 내장Tomcat을 사용한 jar로 배포를 한다. 가끔 상황에 따라서 외장Tomcat으로 war형태로 배포를 진행해야하는 경우가 있는데 이때 SpringBootServletInitializer가 필요하다. @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder app.. 2021. 12. 9.
반응형