본문 바로가기

Java & 스프링/스프링부트 톺아보기17

[스프링 부트] 정적 리소스 - static resource 기본적으로 Spring Boot는 classpath의 /static 또는 ServletContext의 root를 기준으로 아래의 경로에서 정적 컨텐츠를 제공한다. 기본적으로 Spring MVC의 ResourceHttpRequestHandler를 사용하는데 이를 커스터 마이징 하기 위해선 WebMvcConfigurer를 추가하고 addResourceHandlers 메서드를 재정의하여야 한다. /static /public /resources /META-INF/resources 기본적으로 리소스는 / **에 매핑되지만 spring.mvc.static-path-pattern 속성을 사용하여 조정할 수 있으며, spring.resources.static-locations 속성을 지정하여 정적 리소스의 defaul.. 2019. 10. 24.
[스프링 부트] 스프링 MVC - 스프링 부트의 Message Converter 스프링 mvc를 설정하지 않아도 부트에서 기본적으로 사용할 수 있는 이유는 기본적인 설정을 자동으로 해주기 때문이다. dependency에 'spring-boot-starter-web'이나 'mvc'를 추가하면 기본적인 설정을 해준다. 아래 경로에서 해당 내용을 찾아보자. spring-boot-autoconfigure-2.1.5.RELEASE.jar -> spring.factories-> WebMvcAutoConfiguration 스프링이 request에 대한 응답을 response 할 때 json, xml과 같은 다양한 타입을 자동으로 변환하는 역할은 누가 하는 걸까? 바로 HttpMessageConverter 스프링에서 제공하는 interface에서 이 역할을 수행한다. Spring MVC는 Http.. 2019. 10. 23.
[스프링 부트 ] Nginx 와 함께 배포 하기(2) 이전 포스팅에서 스프링 부트 jar 파일을 Nginx와 함께 리눅스 환경에서 실행시켜 보았다. 그런데 기존에 java -jar 명령어를 이용해 실행시켰기 때문에 해당 명령어를 입력한 세션을 종료하면 서비스가 죽어버리는 문제가 있었다. 이번엔 이 문제를 해결해 보도록 하자. 방법을 여러 가지가 있는데 우리는 reference문서에 있는 내용 중에 initd 서비스를 이용하는 방법으로 해결하고자 한다. 레퍼런스 문서를 참고해 보자. 64.2.1 Installation as an init.d Service (System V) 일단 문서를 읽어본 결과, Maven 또는 Gradle 플러그인을 구성하여 완전히 실행 가능한 jar을 생성할 수 있다고 한다. 그리고 이 jar를 init.d 서비스로 사용하면 된다. .. 2019. 10. 15.
[스프링 부트 ] Nginx 와 함께 배포 하기(1) 해당 포스팅은 CentOS8 환경에서 스프링 부트 2.1, JAVA8을 이용해서 진행했다. 스프링 부트를 리눅스 서버에 배포하는 과정을 차근차근 포스팅해보려 한다. 쉬운 것부터 시작해서 최종 목표는 Docker를 이용한 무중단 배포를 진행하는 것이다. 일단 스프링 부트 프로젝트를 jar 형태로 nginx에 배포하고자 한다. 정말 기본적인 과정만 쉬운 것부터 진행해 보자. 우리는 8080 포트를 사용하는 부트를 실행할 것이다. 그리고 80 포트의 nginx와 함께 리버스 프록시 기능을 이용해서 사용자가 80 포트로 접근하면 8080 포트인 부트에 연결시켜줄 것이다. 일단 80 포트로 외부에서 접근 가능하도록 방화벽을 열어주자. CentOS 기준으로 80 포트를 오픈하는 방법은 아래 방법을 가장 자주 사용한.. 2019. 10. 13.