인프런 커뮤니티 질문&답변

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

스프링 핵심 원리 - 기본편

스프링 빈 조회 - 기본

람다식 질문입니다.

해결된 질문

작성

·

489

0

@Test
@DisplayName("빈 이름으로 조회X")
void findBeanByNameX(){
    //MemberService xxxx = ac.getBean("xxxx", MemberService.class);
    assertThrows(NoSuchBeanDefinitionException.class, () -> ac.getBean("xxxxx", MemberService.class));


}

위에 코드 () -> ac.getBean("xxxxx", MemberService.class)의 ()는 어떤 인터페이스의 추상메서드를 오버라이딩하는건지 궁금합니다.

MemberService인터페이스에는 인자없는 추상메서드가 없어서 거기로 가진않았다고 생각이 드는데...

public interface MemberService {
    void join(Member member);

    Member findMember(Long memberId);
}

 

() -> ac.getBean("xxxxx", MemberService.class) 람다식을 해석해주시면 정말 감사하겠습니다.

 

 

답변 1

1

안녕하세요. 박희재님, 공식 서포터즈 OMG입니다.
.

assertThrows는 다음과 같은 3개의 메서드 오버로딩이 되어있고, 현재 올리신 코드는 첫번째 시그니처를 가집니다.

image

첫번째 인자는 클래스타입을,

두번째 인자는 Executable 함수형 인터페이스 execute() 추상메서드의 람다식입니다.

image

() -> ac.getBean("xxxxx", MemberService.class) 람다식

는 파라미터가 없고 getBean을 호출하는 람다표현식입니다.
.


감사합니다.

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

질문하기