inflearn logo
강의

Course

Instructor

Toby's Spring 6 - Understanding and Principles

Time testing using Clock

정적 팩토리 메서드

687

작성자 없음

0 asked

0

안녕하세요 토비님 😄 강의 맛있게 잘 보고 있습니다.

마이너 한 질문인데, 테스트에 Clock 을 이용한 테스트에서

6.50 초 쯔음
아래 와 같은 fixed <- 의 유형 ? 을 정적 팩토리 메서드라고 하셨는데 객체를 반환하기 위해 static 키워드를 사용해야 정적팩토리 메서드가 아닌지 여쭤봅니다

@Bean
public Clock clock() {
    return Clock.fixed(Instant.now(), ZoneId.systemDefault());
}

java spring

Answer 4

4

tobyilee

말씀하신 대로 static 메소드로 만들어졌고 리턴 타입의 오브젝트를 생성하는 기능을 담당하는 메소드를 정적 팩토리 메소드라고 합니다.

Clock.fixed()는 다음과 같이 정의되어있습니다.

    public static Clock fixed(Instant fixedInstant, ZoneId zone) {
        Objects.requireNonNull(fixedInstant, "fixedInstant");
        Objects.requireNonNull(zone, "zone");
        return new FixedClock(fixedInstant, zone);
    }

static 메소드이고, Clock의 서브클래스인 FixedClock의 오브젝트를 생성해서 반환합니다.

예제에 나온 clock()은 그 자체로 정적 메소드는 아니죠. 내부에서 정적 팩토리 메소드를 호출해서 오브젝트를 생성하고 리턴하는 @Bean이 붙은 스프링의 팩토리 메소드일 뿐입니다. 둘 다 팩토리 메소드라고 이야기하는데 조금 다른 방식으로 작성되고, Clock.fixed()와 같은 메소드만 정적(static)이라고 부릅니다.

2

jordytorvalds0457

image.png

Clock 클래스의 javadoc 문서인데, 보시면 fixed에 static(정적) 키워드가 붙어있고 머시기 instant를 만들어준다고 나와있습니다

2

jordytorvalds0457

정적 = static 키워드가 붙음
팩토리 메소드 = 객체를 만들어 주는 역할!

2

jordytorvalds0457

Clock 클래스의 fixed 메소드가 정적인 메소드인데 Clock 객체를 만들어주는 역할을 해서 정적 팩토리 메소드에요

수업을 잘 듣고 있습니다.

0

103

2

jackson(3.0.2 버전) ObjectMapper.readValue 에러타입

0

108

2

템플릿과 콜백의 역할 경계를 구분하는 기준

0

99

1

테스트를 작성하지않아도 되는 경우

0

86

2

오브젝트 정의 중 배열에 대해서

0

63

2

스프링 레거시를 이용하는 회사에서 일을 하게 될것같은데

0

109

2

JpaTransactionManager에 대해 궁금합니다.

0

81

2

스프링빈과 Clock 클래스 관련

0

44

2

Seprate Interface 패턴에 대한 궁금증

0

46

2

테스트의 기준을 어떤식으로 설정하는 것이 바람직한 테스트일까요 ?

0

51

2

오브젝트와 인스턴스

0

38

1

WebApiExRateProvider 템플릿 콜백 패턴을 적용하면서 테스트 코드를 만들어보았습니다.

0

62

2

템플릿 콜백 패턴 관련하여 궁금한 것이 있습니다!

0

59

2

상태 변경 API 질문

0

120

2

빈에 대한 질문

0

97

1

안녕하세요.

0

145

2

Payment 엔티티에 exRateProvider 주입

0

101

1

@Transactional private 사용유무

0

156

1

JdbcClient 생성 질문

0

190

2

안녕하세요 PaymentConfig 질문드립니다.

0

110

2

[공유] 윈도우 사용자를 위한 http 명령어 오류 해결 방법

0

244

2

생성자 파라미터성자 파라미터

0

237

2

토비님 ! BigDecimal 관련 링크를 못찾겠어요

2

343

2

인터페이스 사용에 관하여 질문드립니다.

0

307

3