홈>
연구를했지만 찾고있는 답변을 찾지 못했습니다. Spring에서 DAO와 서비스 클래스는 인터페이스로 선언됩니다. 인터페이스를 구현하는 클래스는 일반적으로 싱글 톤 Java Bean입니다. 질문 : 인스턴스 변수에 의존하지 않는 프라이빗 메서드를 정적으로 만들어야하는 이유가 있습니까? 왜? 예를 들어, 데이터베이스 데이터를 도메인 객체로 변환하는 DAO 클래스에는 몇 가지 개인용 메서드가 있으며 이러한 개인용 메서드는 인스턴스 변수를 사용하지 않습니다. 일부 사람들은 유틸리티로 추출해야한다고 제안 할 수 있음을 이해합니다.
- 답변 # 1
관련 자료
- java - Spring boot @Async 메서드는 실제로 어떻게 비동기/비 차단입니까?
- java - Spring Boot의 Thymeleaf 템플릿에서 메서드를 호출하는 방법은 무엇입니까?
- java - 싱글 톤 클래스에서 작동하지 않는 스프링 의존성 주입
- 매개 변수별로 다른 Spring 컨트롤러 메서드의 순서
- java - Spring JPA 저장소 인터페이스 및 기본 메소드 사용 사례
- java - 스프링 반응 형 웹 클라이언트 - mono에서 메서드를 호출하는 방법
- Spring JPA를 구현할 때 메소드 충돌
- C ++ 용 Google 테스트 API를 사용하여 매개 변수화 된 단위 테스트를 사용하여 개인용 메소드를 테스트 할 수있는 방법은 무엇입니까?
- mybatis dao의 메소드에 사용자 정의 주석이있는 spring aop, parameterNames는 null입니다
- java - Spring 서비스에서 개인 메소드에 액세스하는 방법은 무엇입니까?
- java - Singleton Bean에서 Spring @Async
- 단위 테스트 중 개인 메서드 건너 뛰기 C #
- java - 스프링 데이터 - : 서비스 인터페이스에서 리포지토리 메소드 사용 가능
- typescript - 왜 jest v24 조롱 클래스에 개인 메소드가 필요한가요?
관련 질문
- java : bytebuddy를 사용하여 사용자 정의 JPA 인터페이스를 등록하는 방법
- Java 구성을 사용할 때 Spring이 @Autowired 주석을 무시하는 이유는 무엇입니까?
- java : Rest API 다운로드 후 파일 삭제
- java : @Service의 메소드에서 예외를 던지지 않음
- java : Servlet, 충족되지 않은 종속성, 이러한 Bean 정의 예외를 해결하는 방법은 무엇입니까?
- java : 동일한 Namespace 및 localPart를 사용하여 두 끝점을 정의할 때 Spring WS 오류
- java : 스칼라 2.9 브리지 메서드
- javascript : 반응 프런트 엔드에 표시되지 않는 저장된 데이터 값
- java : YAML 개체의 @ConditionalOnProperty
- java : 블록이 false를 평가하는 방법은 무엇입니까?
단일이라는 단어는 여러 가지 방식으로 사용되며 약간의 혼란을 야기 할 수 있습니다. "하드"(물리적, 클래스 기반 JVM) 싱글 톤은 일반적으로 열거 형 또는 상수를 통해 전체 JVM에 하나의 인스턴스 만 존재할 수있는 클래스입니다. 개체의 상태 나 구성이 전혀없는 경우이 패턴을 피해야합니다. 응용 프로그램의 일부간에 예기치 않은 연결이 발생할 수 있기 때문입니다. (객체가
대조적으로, 단일 범위의 Bean (논리적, 컨테이너 기반)은 단순히 컨테이너를 관리하는 컨테이너가 단일 공유 인스턴스를 유지하고 하나를 원하는 모든 소비자에게 제공한다는 것을 의미합니다 (예 : 작성하는 대신) 각 소비자에 대한 별도의 개인 사본). 대부분의 Spring 애플리케이션에서 실제로는 양측 간의 계약으로 사용되는 Java 인터페이스를 구현하는 것이 바람직하므로메소드를 정적 일 수 없습니다CASE_INSENSITIVE_ORDER
와 같은 순수한 함수를 나타내는 경우 일반적으로 좋습니다. 또는 값))성능 질문과 관련하여
static
의미-구체적으로 메소드 또는 필드가 해당 클래스의 특정 인스턴스와 관계가 없음을 나타냅니다.의미가 적절한 경우 (예 :Math
의 대부분의 방법) ) 이론적 인 성능상의 이유로 이러한 방식으로 코드의 의미를 변경하지 마십시오.