본문 바로가기
728x90
반응형

전체 글382

Spring Boot Servlet Filter에서 에러 코드 변경하기 문제 상황 Spring 으로 프로젝트를 진행하던 도중 Filter 를 이용해서 JWT 검증 로직을 만들었는데, 토큰이 만료되면 에러코드를 다르게 보내주려고 했었다. 허나.. 구글링해서 얻은 답변인 @ResponseStatus() 에너테이션을 이용해도 에러 코드가 바뀌지 않고 ResponseStatusException 객체를 이용해봐도 안되길래 스택오버플로우를 통해 알아낸 방법인 application.properties에 server.error.include-message = always 설정 넣어주기를 해봐도 바뀌지 않았다.... 기존 코드 //JwtAuthenticationFilter @Component @Getter @Slf4j public class JwtAuthenticationFilter ext.. 2024. 4. 17.
MultipartFile을 사용해서 이미지를 로컬에 업로드하기 이번 포스팅에서는 이미지 업로드 API를 만들어보고 해당 이미지를 외부 폴더, 즉 자신의 컴퓨터에다 저장해보도록 하겠다. 먼저 프로젝트를 생성해보자. 프로젝트 생성 application.yml 표시되어있는 부분들을 자세히 봐보자. DB이름에는 생성해준 데이터베이스 이름을 넣고, 비밀번호를 넣어주면 된다. file.dir 에는 자신이 원하는 부분에 폴더를 만들고 경로를 넣어주면 해당 경로에 이미지가 저장되는 것이다. 나는 데스크탑에 images 폴더를 생성하여 해당 경로를 적어주었다. 컨트롤러 우리는 form-data 방식으로 파일을 전송할 것이다. 그럼 한번 Postman으로 확인해보자. 우리가 만들어준 경로에 원하는 사진을 넣으면 된다. 이 때 KEY 이름을 @RequestParam에서 명시해준 이름과.. 2024. 2. 16.
[SpringBoot] Multipart file 업로드 시 "Content type 'application/octet-stream' not supported" 에러 Multipart file 업로드 시 아래와 같은 에러가 발생했다. Content type 에러 분명 테스트 Controller에서 @RequestParam을 사용해 테스트 해봤을 때에는 S3 버킷에 잘 업로드 된 것을 확인했는데, 실제 게시판 글 등록 Controller에 적용해 보니 Content Type 에러가 계속 발생했다. front 단에서 헤더를 잘 설정 해 주었는데도 말이다.. Content type 'application/octet-stream' not supported @PostMapping() @ApiOperation(value = "게시판 공고 등록", notes = "게시판 공고를 등록한다") @ApiResponses({ @ApiResponse(code = 204, message =.. 2024. 2. 16.
Spring application.properties Util로 만들어 쉽게 값 가져오기 spring의 환경변수를 정의하는 역할을 하고 있는 application.properties 파일의 내용을 가지고 오는 방법은 여러가지가 있다. 하지만 이 여러가지 방법들은 사용을 하기 번거로울수도 있고 또한 bean이 아닌 POJO에서 바로 사용할수는 없다. 하지만 프로젝트를 진행하다보면 분명 이런 POJO에서도 application.properties에 있는 값들을 사용하고 싶은 경우가 분명히 있다. 이경우 매번 applicationContext를 가지고 와서 getBean 하여 사용을 하는것은 바람직하지 않기에 이를 Util 클래스로 만들어서 쉽고 간단하게 사용할 수 있도록 해보자. ApplicationContextServe.java import org.springframework.beans.Bea.. 2024. 2. 7.
Spring - @Value가 계속 null을 가져올 때 원인과 해결 방법 @Value란? DB 접속 정보나 비밀번호와 같이 민감한 정보를 별도의 파일로 분리해서 환경 정보에 맞는 값을 불러오도록 하는 애너테이션이다. application.properties 또는 application.yml에 값을 설정하면 필드나 메서드에 값을 주입해준다. 원인 @Value 애너테이션이 property 값을 받아오지 못하는 경우는 크게 네 가지가 있다. 프로퍼티 이름을 잘못 입력했을 경우 내 코드에서는 문제는 따로 문제가 없었다. Bean으로 등록되지 않은 경우 클래스를 Bean으로 등록하지 않으면 Spring이 의존성 주입을 할 수 없다. AES128Config 클래스는 @Component 애너테이션으로 Bean 등록을 했기 때문에 이 부분도 문제가 없었다. static 변수로 받은 경우 @.. 2024. 2. 7.
[Spring] @Component와 @Configuration @Componenet와 @Configuration은 큰 차이는 없다. 하지만, @Configuration의 선언부를 보면 @Component가 정의되어 있으며, @Component는 개발자가 작성한 클래스를 Bean으로 등록하고자 할 때 사용한다. @Componenet 개발자가 직접 작성한 클래스를 Bean으로 등록하고자 할 경우 사용 @Controller, @Service, @Repository 등의 어노테이션에서 상속 // 다른 클래스에서 Bean으로 불러 사용이 가능함 @Component public class MyComponent{ // do something } @Configuration 외부라이브러리 또는 내장 클래스를 Bean으로 등록하고자 할 경우 사용(개발자가 직접 제어가 불가능한 클래스.. 2024. 2. 6.
728x90
반응형