본문 바로가기

Frameworks/Spring Boot5

스프링부트 MyBatis에서 파라미터 여러개 넘기기 (parameterType) 사실 Map 형태로 되어있는 프로젝트라면 모든 Map들을 합쳐서 보내면 되니 별 문제가 없다. 내 경우엔 사용자로 부터 컨트롤러로 들어오는 dto가 여러 종류일 때, 그 종류와 상관없이 동일한 형태로(각 dto에 상응하는 entity를 하나씩 만들고 싶지 않았다) MyBatis에 보내고 싶었다. 또한 해당 요청의 uri도 자동으로 넣어졌으면 좋겠고, JWT+스프링 시큐리티로 AuthenticationPrincipal에 넣어둔 인증된 사용자의 id가 있는 UserInfo도 자동으로 들어가게 하고 싶었다. 즉, 여러 uri를 가지는 컨트롤러들어 있고 각 컨트롤러마다 사용자로부터 받는 dto 클래스가 다르다. 이 때 유저정보, uri, dto를 한꺼번에 물고 MyBatis에 보내고 싶었다. 그래서 다음과 같이.. 2022. 2. 18.
스프링부트 Swagger UI 3.0.0 적용 방법 - 스프링부트 2.2 이상 (Spring Boot Swagger UI) Spring Boot Swagger 3.0.0 적용하기 (스프링부트 2.2 이상 필요) Swagger ? 간단히 말하자면 API 문서를 자동으로 만들어주는 라이브러리임 https://swagger.io/ 예시는 스웨거의 Live Demo 참조 (https://petstore.swagger.io/) 완전 기본적인 적용방법에 대해서만 다룸. 단순 문서 뿐 아니라 API를 문서내에서 parameter를 넣어가며 바로바로 실행 해볼 수 있음. rest api 제작 후 따로 테스트 페이지나 postman으로 실행해보는 대신 swagger 문서 만들어서 실행 가능. 복잡하지 않은 시스템이라면 rest api 서버에 swagger를 적용시켜두고, 해당 api를 호출하는 작업자에게 뭐 복잡하게 설명하고 문서 만들 것 .. 2021. 12. 27.
스프링부트 Swagger UI 2.9.2 -> 3.0.0 마이그레이션 방법 (Spring Boot Swagger UI) SpringFox Swagger UI의 경우 2.9.2가 maven repository에서 가장 usages가 높아서 그걸로 쓰고 있었는데, 최신 버전의 스프링부트에서는 다음과 같이 에러가 뜨게 된다. 'Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException' 그래서 가장 최신인 3.0.0 버전으로 변경하여 적용해봤다. 적용 방법은 springfox github을 참고했다. 1. 기존 swagger 관련 gradle 혹은 maven의 dependency를 삭제한다. 2. 3.0.0 dependency를 추가한다. gradle implementation 'io.sprin.. 2021. 12. 27.
스프링부트 Spring Security 기본 세팅 (스프링 시큐리티) Spring Boot - Spring Security 수정(2022-06-07) : 맨 아래에 예시용으로 스프링 시큐리티와 jsp 정도만 적용시킨 기본 프로젝트 추가했습니다. 스프링부트로 된 프로젝트에 스프링 시큐리티를 적용하는 기본 세팅에 대해 다루는 글 입니다. 스프링 시큐리티는 프로젝트 짤 때 로그인한 유저에 대해 쉽게 관리할 수 있게 해줍니다. 세팅만 할 수 있다면 유저의 id와 pw에 따른 로그인 진행(인증과정), 권한(ROLE) 부여와 권한에 따른 접근 제어, 유저 정보 보관, 세션 관리 등을 간단하게 처리할 수 있습니다. 하지만 스프링쪽은 세팅방식이 너무 다양해서 다양한 유저의 니즈(?)를 충족시켜주는건 좋으나, 초보자 입장에서는 프로젝트에 뭔가를 적용해보려고 찾아봐도 자신의 프로젝트 환경과.. 2021. 10. 30.
스프링부트 Swagger UI 적용 방법 - 스프링부트 2.2 미만 (Spring Boot Swagger UI) Spring Boot Swagger 적용하기 * 주의 : 스프링부트 2.2 이상을 사용한다면 여기를 참고하여 진행하세요. 2.9.2를 이미 사용 중에 3.0.0으로 마이그레이션을 한다면 여기를 참고하세요. Swagger ? 간단히 말하자면 API 문서를 자동으로 만들어주는 라이브러리임 https://swagger.io/ 예시는 스웨거의 Live Demo 참조 (https://petstore.swagger.io/) 완전 기본적인 적용방법에 대해서만 다룸. 단순 문서 뿐 아니라 API를 문서내에서 parameter를 넣어가며 바로바로 실행 해볼 수 있음. rest api 제작 후 따로 테스트 페이지나 postman으로 실행해보는 대신 swagger 문서 만들어서 실행 가능. 복잡하지 않은 시스템이라면 res.. 2021. 9. 27.