본문 바로가기

Java74

QueryDsl-required a bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' 해결방법 QueryDsl을 적용하고 애플리케이션 run을 하는데, "required a bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' that could not be found." 라는 에러가 발생했습니다. bean 등록 관련 에러이기에 @Component annotation 여부를 확인했고, 다 제대로 애노테이션이 붙어있었기에 어떻게 해결하면 좋을지 알기 어려웠습니다. 그러던 중에 JPA configuration을 따로 설정해주어야 한다는 글을 읽게 되었고 해당 방식으로 해결하였습니다. package com.courseori.server.config; import com.querydsl.jpa.impl.JPAQueryFactory; import org.spring.. 2022. 10. 8.
Spring Data JPA 더미데이터 생성 후 생각지 못했던 문제와 해결방법! 지난번 포스팅에서 data.sql을 이용해 더미데이터를 만드는 방법을 알아보았습니다. https://ittingz.tistory.com/168 Spring Data JPA 더미 데이터 만들기-data.sql 사용 프론트에서 회원 더미 데이터를 요청하셔서 더미 데이터를 생성해보았습니다. 어떻게 하는 건가 궁금했었는데, 이 참에 방법을 공부했습니다. 1. 먼저 resource 폴더에 data.sql 파일을 만들어 줍니 ittingz.tistory.com 더미데이터는 잘 생성이 되는데, 한 가지 간과한 문제가 있었습니다 🥹 더미데이터가 있는 상태에서 postman으로 새로운 데이터를 생성하려고 하면 id가 unique하지 않다는 오류가 발생한다는 것을 알게되었습니다. 데이터가 새로 생성되면 자동으로 id가 할.. 2022. 10. 1.
Spring Data JPA 더미 데이터 만들기-data.sql 사용 프론트에서 회원 더미 데이터를 요청하셔서 더미 데이터를 생성해보았습니다. 어떻게 하는 건가 궁금했었는데, 이 참에 방법을 공부했습니다. 1. 먼저 resource 폴더에 data.sql 파일을 만들어 줍니다. 그리고 data.sql 내부에 원하는 Query 문을 작성해줍니다. 2. application.yml (또는 application.properties) 파일에 설정을 추가해줍니다. 위에 작성된 설정 중 data.sql 파일에 설정한 query문이 정상적으로 작동되게 하기 위한 설정은 defer-datasource-initialization:true 입니다. 어떤 설정인지 한 번 살펴보겠습니다. 설명에는 Bean들이 생성/init될 때까지 DataSource initialization을 보류할 것인지.. 2022. 10. 1.
Parameter 2 of constructor in ... that could not be found error Controller test를 하려는데 자꾸만 아래와 같은 에러로 인해 진행이 되지 않았습니다. @Component(@Service, @Repository 등 포함) annotation을 붙이지 않아 생기는 에러라고 하여 해당하는 클래스들을 다 확인했지만 annotation은 다 잘 설정되어 있었습니다. 그러다가 결국 알게된 원인은 해당 class를 @MockBean으로 등록(?)하지 않았기 때문이었습니다. 🥹 사실 문제를 일으켰던 bean들은 test code에서는 명시적으로 사용되지 않았기 때문에 @MockBean으로 필요할 것이라고 전혀 생각지 못하였습니다. 그런데 그 친구들을 등록해주니 해당 문제에서 벗어날 수 있었습니다. ㅎㅎ 혹시 동일한 문제로 고통받고 계신분이 있으시다면 도움이 되었으면 좋겠.. 2022. 9. 27.
RestController 테스트 시 JWT 생성하기 Spring Security dependency가 적용된 상태에서는 unit test를 할 때도 security 관련 처리를 해주어야 합니다. 즉, 회원 인증 절차를 포함해주어야 합니다. (인증된 유저가 서비스를 이용한다는 가정) 만약에 인증 과정을 거치지 않으면 아래처럼 Unauthorized 에러가 발생합니다. 어떠한 방법으로 해결하면 되는지 찾아보니 @WithMockUser를 사용하면 된다는 것을 알게 되었습니다. 문서에 상세하게 사용법이 나와있는데, 기본적으로는 test하고자 하는 메서드 테스트 코드에 @WithMockUser만 붙여주면 된다고 합니다. 사용해보니 테스트 통과가 되더라구요. 하지만 특정한 username이나 password를 사용해서 인증을 하고 싶은 경우 혹은 권한을 달리하여 인.. 2022. 9. 20.
@RequestParam 애노테이션 @RequestParam은 핸들러 method의 parameter 종류 중의 하나로, client 쪽에서 전송하는 요청 데이터를 Query Parameter 또는 Query String form-data x-www-form-urlencoded 형식으로 전송할 수 있게 해주는 annotation 입니다. 2022. 9. 12.
반응형