본문 바로가기
반응형

스프링/스프링13

[F-lab] 12주차 정리 - 프로젝트 개발 2주차 인텔리제이에 xml 파일로 코딩 컨벤션 적용하기(네이버 코딩 컨벤션) https://scshim.tistory.com/434 다양한 종류의 로드밸런서와 다양한 로드밸런싱 알고리즘 https://scshim.tistory.com/391 AOP란? 스프링부트에서 AOP 사용하기 https://scshim.tistory.com/429 스프링에서 AOP를 구현하는 방법 https://scshim.tistory.com/430 Web API/Http API vs REST API https://scshim.tistory.com/426 REST란? REST API란? 일반적인 HTTP API가 REST API가 아닌 이유 https://scshim.tistory.com/435 2021. 11. 8.
[MyBatis] 오류 해결: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in XXX 오류 해결: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in XXX MyBatis가 자동으로 객체를 생성할 때는 기본 생성자(매개변수가 없는)가 필요하다. 기본 생성자가 없다면 위와 같은 에러가 발생한다. 아래와 같이 클래스의 기본 생성자를 추가하면 문제가 해결된다. public class DrivingInfo { public DrivingInfo() {} } 2021. 8. 20.
[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.
[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.
[Spring] 오류 해결: org.hibernate.AnnotationException: No identifier specified for entity 문제 스프링에서 Entity 클래스를 다음과 같이 작성했다. @Entity public class User { @Id private Long id; private String firstName; private int age; private String email; } 작성하는 중 분명 @Id 어노테이션을 갖는 필드가 존재함에도 다음과 같은 에러를 뿜으며 애플리케이션 실행이 중지되었다. 해결 잘못된 패키지에서 Id 클래스를 import 하고 있었다. 다음과 같이 변경하여 해결할 수 있었다. import org.springframework.data.annotation.Id; 변경 -> import javax.persistence.Id; 2021. 4. 15.
[Junit5] 스프링4에서 Junit5의 @ExtendWith(SpringExtension.class) 코드 사용하기 스프링4에서 Junit5의 @ExtendWith(SpringExtension.class) 코드 사용하기 자바 테스트 클래스 이름 위에 '@ExtendWith(SpringExtension.class)' 어노테이션을 붙이면 Spring TestContext Framework를 Junit5 프로그래밍에 포함 시킬 수 있다. 문제는 스프링4에서는 다음과 같이 해당 코드가 인식되지 않는 다는 것이다. 이러한 문제의 원인은 스프링4에서 Junit5 테스트를 위한 의존성이 없기 때문이다. 때문에 '@ExtendWith(SpringExtension.class)' 어노테이션을 사용하려면 pom.xml 파일에 아래 의존성을 추가해야한다. 의존성을 추가하고 다시 코드로 돌아가면, 코드가 정상적으로 작동되는 걸 확인할 수 있.. 2021. 4. 7.
반응형