반응형

기본 메서드와 추상 클래스가 있는 인터페이스

1. 소개 Java 인터페이스에 기본 메소드 가 도입된 후 인터페이스와 추상 클래스 사이에 더 이상 차이가 없는 것처럼 보였습니다. 그러나 그렇지 않습니다. 그들 사이에는 몇 가지 근본적인 차이점이 있습니다. 이 예제에서는 인터페이스와 추상 클래스가 어떻게 다른지 자세히 살펴보겠습니다. 2. 기본 방법을 사용하는 이유는 무엇입니까? 기본 방법 의 목적은 기존 구현을 중단하지 않고 외부 기능을 제공 하는 것입니다. 기본 방법을 도입한 원래 동기 는 새로운 람다 함수를 사용하여 Collection Framework에 이전 버전과의 호환성을 제공하는 것이었습니다. 3. 기본 메소드와 추상 클래스 가 있는 인터페이스 주요 근본적인 차이점을 살펴 보겠습니다. 3.1. 상태 추상 클래스 는 상태를 가질 수 있으며 ..

Spring 2022.11.07

Java 인터페이스의 전용 메소드

1. 개요 Java 9부터 Java 의 인터페이스에 개인 메서드 를 추가할 수 있습니다 . 이 짧은 사용방법(예제)에서 이러한 방법과 그 이점을 정의하는 방법에 대해 논의해 보겠습니다. 2. 인터페이스에서 개인 메서드 정의하기 개인 메서드는 정적 또는 비 정적 으로 구현될 수 있습니다 . 이것은 인터페이스에서 기본 및 정적 공용 메서드 서명 모두에서 코드를 캡슐화하는 개인 메서드를 만들 수 있음을 의미합니다. 먼저 기본 인터페이스 메서드에서 개인 메서드를 사용하는 방법을 살펴보겠습니다. public interface Foo { default void bar() { System.out.print("Hello"); baz(); } private void baz() { System.out.println(" w..

Spring 2022.11.07

Java에서 인터페이스와 추상 클래스 사용

1. 소개 추상화 는 객체 지향 프로그래밍의 핵심 기능 중 하나입니다. 단순한 인터페이스를 통해 기능을 제공함으로써 구현 복잡성을 숨길 수 있습니다. Java에서는 인터페이스 또는 추상 클래스 를 사용하여 추상화를 달성 합니다. 이 기사에서는 애플리케이션을 설계하는 동안 인터페이스를 사용해야 하는 경우와 추상 클래스를 사용해야 하는 경우에 대해 설명합니다. 또한 이들 간의 주요 차이점과 우리가 달성하고자 하는 것에 따라 선택할 수 있는 것입니다. 2. 클래스 대 인터페이스 먼저 일반 구체 클래스와 인터페이스의 차이점을 살펴보겠습니다. 클래스는 객체 생성을 위한 청사진 역할을 하는 사용자 정의 유형입니다. 개체의 상태와 동작을 각각 나타내는 속성과 메서드를 가질 수 있습니다. 인터페이스는 또한 클래스와 구..

Spring 2022.11.07

Java의 인터페이스 분리 원칙

1. 소개 이 예제에서는 SOLID 원칙 중 하나인 인터페이스 분리 원칙에 대해 설명합니다 . "SOLID"에서 "I"를 나타내는 인터페이스 분리는 단순히 더 큰 인터페이스를 더 작은 것으로 분할해야 함을 의미합니다. 따라서 클래스를 구현할 때 원치 않는 메서드를 구현할 필요가 없도록 합니다. 2. 인터페이스 분리 원칙 이 원칙 은 Robert C. Martin에 의해 처음 정의되었습니다 . 이 원칙의 목표는 애플리케이션 인터페이스를 더 작은 인터페이스로 나누어 더 큰 인터페이스를 사용하는 부작용을 줄이는 것입니다 . 각 클래스 또는 인터페이스가 단일 목적 을 수행하는 단일 책임 원칙 과 유사합니다 . 정확한 애플리케이션 설계와 올바른 추상화는 인터페이스 분리 원칙의 핵심입니다. 응용 프로그램의 설계 단..

Spring 2022.11.07

JPA 엔티티와 직렬화 가능한 인터페이스

1. 소개 이 사용방법(예제)에서는 JPA 엔터티와 Java 직렬화 가능 인터페이스가 혼합되는 방식에 대해 설명합니다. 먼저 java.io.Serializable 인터페이스와 왜 필요한지 살펴보겠습니다. 그런 다음 JPA 사양과 가장 널리 사용되는 구현으로 Hibernate를 살펴보겠습니다. 2. 직렬화 가능한 인터페이스란 무엇입니까? Serializable 은 핵심 Java에서 발견되는 몇 안되는 마커 인터페이스 중 하나입니다. 마커 인터페이스 는 메서드나 상수가 없는 특수한 경우의 인터페이스입니다. 객체 직렬화는 Java 객체를 바이트 스트림으로 변환하는 프로세스입니다 . 그런 다음 이러한 바이트 스트림을 유선으로 전송하거나 영구 메모리에 저장할 수 있습니다. 역직렬화는 바이트 스트림을 가져와 Jav..

Spring 2022.11.07

mapstruct에서 다른 클래스의 다른 매핑을 어떻게 사용할 수 있습니까?

mapstruct에서 다른 클래스의 다른 매핑을 어떻게 사용할 수 있습니까? 물어보다 1. 질문(문제점): 모델 개체를 dto 모델에 매핑하고 싶습니다. 개체 중 하나에 대한 매퍼가 이미 있습니다. 다른 클래스에 있는 다른 매퍼에서 이 매퍼를 어떻게 재사용할 수 있습니까? 나는 모델로 아래에있다 @Getter @AllArgsConstructor @ToString public class History { @JsonProperty("identifier") private final Identifier identifier; @JsonProperty("submitTime") private final ZonedDateTime submitTime; @JsonProperty("method") private final ..

Spring 2022.11.06

SpringBoot 테스트가 '사용 가능한 'webHandler'라는 빈이 없음'으로 실패함

SpringBoot 테스트가 '사용 가능한 'webHandler'라는 빈이 없음'으로 실패함 물어보다 1. 질문(문제점): SpringBoot Webflux 테스트를 실행하려고 하는데 webtestclient에 대한 Spring 테스트 문서를 따르려고 하는 동안 오류가 발생 합니다No bean named 'webHandler' available . 문제가 되는 줄이 setup()에 있는 것 같습니다. public WebTestClient webTestClient; @Before public void setUp() { webTestClient = WebTestClient.bindToApplicationContext(this.context).build(); 내 어노테이션은 다음과 같습니다. @RunWith(..

Spring 2022.11.06

org.springframework.plugin.core.PluginRegistry의 호환 가능한 단일 버전을 포함하도록 애플리케이션의 클래스 경로를 수정하십시오.

org.springframework.plugin.core.PluginRegistry의 호환 가능한 단일 버전을 포함하도록 애플리케이션의 클래스 경로를 수정하십시오. 물어보다 1. 질문(문제점): 스프링 클라우드를 사용하여 모듈식 앱을 마이크로 서비스 앱으로 마이그레이션 중입니다. 모듈을 마이크로 서비스로 마이그레이션하고 실행했을 때 다음과 같은 문제가 발생했습니다. org.springframework.plugin.core.PluginRegistry의 호환 가능한 단일 버전을 포함하도록 애플리케이션의 클래스 경로를 수정하십시오. 이것은 오류입니다. 존재하지 않는 메소드를 호출하려고 했습니다. 다음 위치에서 시도했습니다. org.springframework.data.rest.core.support.Unwra..

Spring 2022.11.06

"개체 = '사용자'에 대한 유효성 검사에 실패했습니다. 오류 수: 1" 대신 "이메일은 null이 아니어야 합니다"

"개체 = '사용자'에 대한 유효성 검사에 실패했습니다. 오류 수: 1" 대신 "이메일은 null이 아니어야 합니다" 물어보다 1. 질문(문제점): 사용자를 확인하고 생성하는 API가 있습니다. 요청 본문에 이메일을 입력하지 않으면 받는 { "timestamp": "2020-11-26T13:55:40.116+00:00", "status": 400, "error": "Bad Request", "message": "Validation failed for object='user'. Error count: 1", "path": "/api/users" } "이메일은 null이 아니어야 합니다"와 같은 보다 이해하기 쉬운 오류로 메시지를 변경하고 싶습니다. 내 모델의 속성은 다음과 같습니다. @NotNull pri..

Spring 2022.11.06

Spring에서 ModelMapper를 조롱하는 방법은 무엇입니까?

Spring에서 ModelMapper를 조롱하는 방법은 무엇입니까? 물어보다 1. 질문(문제점): 내 서비스 계층에 대한 단위 테스트를 작성하려고 합니다. @SpringBootTest class ClinicServiceTest { @Mock private ProcedureRepository procedureRepository; @InjectMocks private ClinicService clinicService; @Test void setProcedureStatus() { when(procedureRepository.findById(1L)).thenReturn(Optional.of(initialEntity)); when(procedureRepository.saveAndFlush(expectedEntit..

Spring 2022.11.06
반응형