Spring

Spring

[Spring] 정적파일 경로

기본적으로 src/main/webapp이 root로 설정되어있다. 이러한 구조일때 프로젝트에 context-path가 있다면 /context/js/login/login.js로 접근할 수 있다. 주의할점은 /로 시작하면, /js/login/login.js로 잡힌다. /없이 상대경로로 해줘야 /context/login/login.js로 잡힌다.

Spring

[Spring] Spring MVC 설정(XML방식)

과거에는 Srping에 xml형식으로 모든 설정을 했다. 현재는 Annotation방식(@)으로 바뀌지만, 여전히 xml로 설정이 가능하다. 레거시 프로젝트를(spring 4 기준) xml형식으로 만들어보면서 spring에 대해 더 깊게 알아보자. xml은 일반적으로 크게 이런식으로 나눈다. 1. web.xml 2. dispatcher-servlet 3. context-*.xml 위의 3가지는 용도에 따라 나눠둔 것일 뿐 모두 그냥 bean을 등록하는 행위이다. 파일의 시작은 web.xml이다. spring에 기본적으로 webapp/WEB-INF아래의 web.xml을 먼저 보도록 되어있다. 그냥 용도에 따라 나눈 것 뿐이므로 이름을 바꿔도 된다. dispatcher-servlet.xml은 dispatch..

Spring

[springboot] springboot 3.0의 새로운 점!

SpringBoot 3.0의 개선사항 언젠가부터 Spring Initializr에서 spring 3.0부터만 지원하게 되었다... 그래서 이번 포스트에서는 springboot 3.0에 대해서 알아보도록 하겠다. 참고로 springboot는 java 17이상을 지원하기때문에, java17의 다른점을 알고 싶은 분들은 아래 링크 클릭! 2024.01.11 - [java] - [java] java 17의 새로운 점들! [java] java 17의 새로운 점들! java17 & SpringBoot3.0 2021년 9월 java 17이 새로 나왔다 (LTS버전 - Long-term support) java 11과 비교해서 70가지 이상의 JEP가 더 추가되었다고 한다. *JEP : JDK 개선제안, JDK Enh..

Spring

[spring] swagger-fox 연동하기

Swagger가 뭐지? 우리는 보통 swagger와 swagger-ui를 헷갈린다. 사실 swagger에서는 다양한 툴을 제공하는데, swagger-hub(깃헙처럼 다양한 api를 확인할 수 있다), swagger-ui 등을 제공한다. swagger-ui를 우리는 보통 swagger라고 부르기도 한다. swagger는 open api specification과 연관되어있다. Oepn Api Specification(OAS)는 Restful API를 위한 표준이다. Swagger Specification이라고도 하는 것 같다. Swagger는 이 표준을 준수해서 API를 만들고 소스코드 없이 이해 가능하도록 시각화하는 툴을 제공한다. 그것이 바로 swagger-ui이다. swagger는 기술의 제약을 받지..

Spring

[springboot] ApplicationPidFileWriter 란?

Why? 외장 톰캣으로 어플리케이션을 재구동한다면 shutdown.sh를 실행하면되지만, 내장 톰캣(스프링 부트) 애플리케이션을 재구동한다면 일반적으로 서버 구동시 pid를 미리 저장해두고 종료가 필요한 시점에해당 pid값으로 kill한다. 바로 이 pid를 만들어주는 방법 중에 하나가 ApplicationPidFileWriter객체의 사용이다. 자동 배포를 할때, 자동으로 재구동하기위해 pid를 설정해준다. PID 만들기 PID 생성 경로 지정 spring: pid: file: test-app.pid # PID 파일 생성 경로 지정 Main 메소드 ApplicationPidFileWriter 생성 @SpringBootApplication 을 적용한 메인 Application의 main()메소드에서 아래..

Spring

[spring] form데이터 @RequestPart vs @RequestParam

@RequestPart란? @RequestPart는 @RequestParam과 마찬가지로 String, form, multipart데이터를 받지만, JSON, multipart 복잡한 데이터를 받는데 주로 사용된다. @RequestParam VS @RequestPart VS @ ReqeustBody 그럼 차이점이 무엇일까? 이 세가지 어노테이션을 비교해보며 ReqeustPart에대해 알아보자. @RequestParam과 @RequestPart는 둘 다 파라메터를 받는데서 사용한다. String, from, Multipart 데이터를 받을 수 있다. @RequestBody는 바디에 있는 데이터를 꺼내는 역할을 한다. @RequestBody post등의 방식으로 body에 데이터를 넣어주었을 때만 사용한다...

Spring

[spring] spring scheduler vs quartz scheduler

개인적으로 spring shceduler와 quartz shceduler가 같은건 줄 알았는데, 알고보니 다른거여서 다시 포스팅을 남긴다. Spring scheduler spring scheduler는 spring에서 built in 으로 제공한다. quartz보다 훨씬 간단하게 사용할 수 있다는 장점이 있다. 프로젝트가 복잡하지 않고 단순히 scheduling과 bean만 필요하다면 quartz보다 spring scheduler가 낫다. 메인메소드에 @EnabledScheduling을 달아주고, @EnableScheduling @SpringBootApplication public class Application() { public static void main(String[] args) { Spring..

Spring

[spring] @RequestBody @ResquestParam 등 정리

클라이언트의 content type과 controller의 parameter나 response type이 안맞으면 404, 415, 400, 500 등 오류가 난다. 이런 오류는 잡기 어려우므로, 관련 지식을 다시한번 정리해보자. VO parameter에 VO가 온다. 아무 어노테이션이 붙지 않아도 jackson이 getter setter를 이용하여 VO에 값을 매핑해준다. 반면, 아무 어노테이션 없이 HashMap으로 받으려고 하면 오류가난다. VO와 다르게 getter setter가 없기 때문이다. @RequestBody body에 있는 내용을 꺼내준다. 클라이언트의 Contet-Type 에 알맞은 HttpMessageConverter가 선택되어 java객체로 변환시켜준다. body에 데이터를 넣는 ..

우주유령
'Spring' 카테고리의 글 목록