본문 바로가기
반응형

스프링49

[Spring] The dependencies of some of the beans in the application context form a cycle 양방향 의존관계 오류 The dependencies of some of the beans in the application context form a cycle 양방향 의존관계 오류 스프링 프레임워크에서는 @Autowire 어노테이션을 이용해서 의존성 주입을 한다. 그런데 서로 다른 두 개의 클래스에서 서로를 의존성 주입하면 위와 같이 양방향 의존관계 오류가 발생한다. 위 이미지에서는 userService, reservationService 클래스가 서로를 의존성 주입하고 있어 오류가 발생했다. 이는 A를 변경하면 B가 영향을 받고, B를 변경하면 A가 영향을 받으므로 나쁜 설계라고 할 수 있다. 이를 해결하기 위해 A>B, B>A 의존 관계가 있다면 새로운 C를 만들어서 A>B>C로 의존관계를 갖도록 변경하여 문제를 해결 .. 2021. 8. 9.
[JPA] Spirng Data JPA에서 QueryDSL 사용하기 QueryDSL에 대한 이해와 사용 방법 설명합니다. 모든 설명은 프로젝트에 Spirng Data JPA 의존성이 추가된 것으로 가정합니다. 학습 목표 - QueryDSL이란? - 스프링부트에서 QuerySQL 사용하기 - Gradle에 QuerySQL 설정 추가 - QuerydslPredicateExecutor 인터페이스 - 테스트코드 작성 QueryDSL이란? ▶ JPA에서 동적으로 쿼리를 처리하는 방법 QueryDSL을 사용하는 이유는 무엇일까? 웹 애플리케이션에서 검색 기능을 구현할 때 검색 조건은 다양하게 구성된다. 다양한 검색 쿼리를 미리 등록해서 사용하면 비슷한 쿼리가 너무 많아져 관리하기 어렵다. QueryDSL을 사용하면 동적으로 쿼리를 처리하므로 해당 문제를 해결할 수 있다. 스프링부트.. 2021. 7. 20.
[JPA] 오류 해결: “Data too long for column” Spring Data JPA를 통해 아래와 같은 엔티티로 MySQL 데이터베이스에 테이블을 생성한다고 가정하자. @Entity public class SurveyAnswer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id; Long userId; LoveType loveType; String answers; } 코드의 answers 변수처럼 String 타입을 설정하면, 기본적으로 255바이트의 varchar 타입 컬럼이 된다. 하지만 기본으로 설정된 255바이트의 길이가 넘는 문자열을 입력하면 다음과 같은 오류가 발생한다. “Data too long for column” 오류를 해결하려면, 컬럼의 길이를 늘려주면된다. 생성된 컬럼(a.. 2021. 5. 29.
[JPA] 오류해결: Field 'id' doesn't have a default value 아래 코드와 같이 작성된 엔티티를 통해 데이터베이스에 값을 입력하려 했지만, 다음과 같은 오류가 발생했다. Field 'id' doesn't have a default value 문제는 데이터베이스의 해당 테이블 Id 컬럼에 Auto Increment 설정이 적용되지 않아서 발생한 것이었다. 자동 생성을 원하는 컬럼에 Auto Increment 설정을 적용하면 문제는 해결된다. 2021. 5. 27.
[Spring Boot]스프링부트와 Gradle을 통해 Swagger 2 시작하기 스프링부트와 Gradle을 통해 Swagger 2 시작하기 자바에서 API 명세 문서를 작성하는 Swaagger 2 프레임워크에 대하여 알아보는 글입니다. 학습 목표 - Swagger가 필요한 이유 - Swagger 초기 설정하기 - Swagger UI 설정하기 - Spring Data REST Swagger가 필요한 이유 현대에는 웹어플리케이션을 프론트엔드와 백엔드로 나눈다. 대개 프론트엔드 구성요소와 써드파티를 위해 백엔드 구성요소로 API를 노출해야 한다. 이때 백엔드 API를 위한 명세서는 꼭 필요하다. 동시에 API 문서는 유익하고, 가독성이 좋으며, 따라하기 쉬워야한다. 더욱이 레퍼런스 문서는 모든 변경 사항을 설명해야한다. 이를 수동으로 작업하는 것은 매우 지루한 작업이기 때문에 자동화 작업.. 2021. 5. 22.
[Spring] @Scheduled - 스프링에서 주기적인 작업을 진행하는 법 스프링에서는 @Scheduled 어노테이션을 사용해서 주기적인 작업을 진행할 수 있다. 예를 들어 매일 아침마다 미정산 고객에게 결제를 시도하기, 일요일마다 고객에서 push 메세지 보내기 등을 할 수 있다. 이 글에서는 Spring 4.0 버전에서 XML 파일 설정을 통해 @Scheduled 기능을 사용한다. 학습 목표 - 초기설정 - Fixed Rate - InitialDelay - Cron Expression - Parameterizing 초기 설정 1. 주기적인 작업을 수행할 클래스 생성 스프링 프로젝트에 다음과 같은 자바 코드를 추가한다. import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.sch.. 2021. 5. 21.
반응형