일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- application.yml
- 테스트
- 메소드명
- subquery
- 참조키
- docker명령어
- 서브쿼리
- appspec
- 추후정리
- ubuntu
- 2 > /dev/null
- EC2
- appspec.yml
- ㅔㄴ션
- 테스트메소드
- 적용우선순위
- 외부키
- Query
- querydsl
- MySQL
- 포트
- 커밋메세지수정
- WeNews
- 컨테이너실행
- foreignkey
- 검색
- 메세지수정
- AuthenticationEntryPoint
- 예약
- 네이티브쿼리
- Today
- Total
목록Spring Boot (83)
제뉴어리의 모든것
ApplicationContextProvider import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component //빈으로 등록 public class ApplicationContextProvider implements ApplicationContextAware { private static ApplicationContext ctx = null; public static A..
사전 지식 Mockito는 Mock 객체를 생성하고, 해당 Mock 객체가 진짜처럼 동작하게 하는 기능을 하는 Mocking framework(또는 라이브러리)이다. @SpringBootTest 클래스 레벨에 붙이는 애노테이션. @SpringBootApplication 이 붙은 클래스를 찾아서 해당 애노테이션의 기능을 활성화 시키면서, 실제로 애플리케이션을 띄운다. 그러므로 ApplicationContext가 활성화 되고 현재 프로젝트에서 빈으로 등록한 ( EX : @Component 가 붙은 클래스) 클래스들이 모두 ApplicationContext에 담기게 되는것이다. 그러므로, 실제 포트도 Listening되고 현재 애플리케이션의 Controller, Service, Repository 레벨 모두를..
MapStruct는 DTO 와 Entity간 자동으로 맵핑을 해주는 라이브러리이다. 다음 순서대로 진행하여 적용해보자. 0. 맵핑할 Entity와 DTO 정의 Entity import lombok.Setter; @Setter // MapStruct에서 구현체내에 메소드 바디를 정의할때 사용되기 때문에 필수 public class Student1 { Long id; String name; String phone; } DTO import lombok.Getter; import lombok.Setter; @Getter // MapStruct가 Entity와 매핑하기 위해 필수 @Setter // 스프링이 클라이언트가 보낸 Json 데이터를 해당 DTO에 매핑하기 위해 필수 public class Student..
유효성 검증을 위해 스프링부트에서 지원하는 여러 애노테이션이 많지만, 해당 애노테이션이 적용되지 않는 경우도 있기 때문에 사용자 정의 애노테이션을 만들어서 DTO의 유효성 검증을 해야할때가 있다. 그럴 경우를 대비해서 직접 애노테이션을 만들어서 검증을 해보자 현재 상황은 DTO의 필드 중 Enum 타입이 존재할때이다. 필드 타입이 Enum일때는 @Range와 같은 애노테이션이 적용되지 않기 때문이다. 현재 아래와 같은 Entity 가 있다고 해보자. import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.*; @NoArgsConstructor @Setter @Getter @Ent..
테스트 코드 위와 같이 Test 코드에 @DisplayName 을 적용하여 테스트 이름을 설정해주었건만, 위에 빨간박스 안에가 현재처럼 @DisplayName에 설정한 명칭으로 나오는것이 아니고, helloJunitTest 라는 메소드명 자체로 나오는 경우가 있다. (다시 한번 말하지만 위에 창은 정상적으로 잘 나오는 결과화면이다) 아래에 내용대로 하면 @DisplayName()에서 괄호안에 적어준 테스트명이 콘솔창에 제대로 출력될것이다. (윈도우 환경에서의 설명이다.) 1. 위에 메뉴에서 File -> Settings.. 선택한다. 2. 좌측 메뉴에서 Build, Execution, Deployment -> Build Tools -> Gradle 선택 3. Run tests using 항목을 Intel..
JPA Auditing이란? Java에서 ORM 기술인 JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재합니다. 대표적으로 생성일자, 수정일자, 식별자 같은 필드 및 컬럼이 있습니다. 도메인마다 공통으로 존재한다는 의미는 결국 코드가 중복된다는 말과 일맥상통합니다. 데이터베이스에서 누가, 언제하였는지 기록을 잘 남겨놓아야 합니다. 그렇기 때문에 생성일, 수정일 컬럼은 대단히 중요한 데이터 입니다. 그래서 JPA에서는 Audit이라는 기능을 제공하고 있습니다. Audit은 감시하다, 감사하다라는 뜻으로 Spring Data JPA에서 시간에 대해서 자동으로 값을 넣어주는 기능입니다. 도메인을 영속성 컨텍스트에 저장하거나 조회를 수행한 ..