본문 바로가기

스프링 관련62

스프링 프로젝트 패키지 구조 정리 및 항목별 index url 정리 3개 클론코딩한 프로젝트 참조하여 공통적으로 선택 & 좋은 것 같은 템플릿 처럼 사용하려고 하는 패키지 구조 정리하려고 함 https://charactermail.tistory.com/534 - config (configuration) -> 컨피그 클래스들 ( ModdelMapper, Authentication, Redis, Security ) -- filter (optional) https://charactermail.tistory.com/535 - service -- --> interface, 구현체 쌍으로 구성 https://charactermail.tistory.com/537 - repository -- https://charactermail.tistory.com/538 - controller -.. 2023. 1. 13.
다이나믹 프록시 (mockito) 런타임에 특정 인터페이스 또는 클래스의 프록시 인스턴스 또는 클래스를 만들어 사용하는 프로그래밍 기법 주요 사용처 - 스프링 데이터 JPA - 스프링 AOP - Mockito - hibernate lazy initalzation - .사용하지 않는 entity는 임시 프록시 객체 만들어놓고, 나중에 실제로 필요할 때 해당 엔티티 가져오는 것 Mockito 특정 클래스를 테스트 할 때, 해당 클래스를 구성하는 멤버 인스턴스 변수를 초기화해주기 어려울 경우, 대체를 위한 다이나믹 프록시 기술을 활용하여 프록시 객체를 생성하는 기능을 지원함. 하지만 아래 예시에서 when(bookRepositoryMock.save(any())).thenReturn(aBook); 항상 "A" Book을 return 하는 .Mo.. 2022. 12. 20.
@RestControllerAdvice, @ExceptionHandler(RuntimeException.class) 이용한 예외처리 분리 @RestControllerAdvice : 스프링 빈에 등록된 @Controller, @RestController 클래스 전체 대상으로 @ExceptionHandler를 적용할 수 있는 설정 @ExceptionHandler : @Controller, @RestController 클래스 안에서 예외가 발생한 것을 적용된 Bean 내에서 처리할 수 있게 하는 기능을 제공한다. @Slf4j @RestControllerAdvice public class GlobalControllerAdvice { @ExceptionHandler(SnsApplicationException.class) public ResponseEntity applicationHandler(SnsApplicationException e){ log.. 2022. 11. 20.
spring JpaAuditing JpaAuditing은 엔티티에서 공통으로 사용하는 칼럼을 재활용 하여 중복을 제거하기 위해 사용하는 설정 (대표적으로 시간 칼럼) 크게 아래 3가지 설정만 하면 된다. @EnableJpaAuditing @Configuration public class JpaConfig { } public class PackageEntity extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer packageSeq; private String packageName; private Integer count; private Integer period; } @MappedSuperclass @EntityListener.. 2022. 11. 6.