inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 핵심 원리 - 기본편

@Configuration과 싱글톤

9분 13초 코드 실행 하면 객체 주소가 다 다른값이 나와요

265

궁금증연구소
0

강의에서는 다 같은 값으로 나오는데, 저는 왜 다른값으로 나올까요? ㅠ

 

package hello.core.member;

public class MemberServiceImpl implements MemberService {

    private final MemberRepository memberRepository;

    public MemberServiceImpl(MemoryMemberRepository memoryMemberRepository) {
        this.memberRepository = memoryMemberRepository;
    }

    @Override
    public void join(Member member) {
        memberRepository.save(member);
    }

    @Override
    public Member findMember(Long memberId) {
        return memberRepository.findById(memberId);
    }

    //테스트용도
    public MemberRepository getMemberRepository(){
        return memberRepository;
    }
}

 

package hello.core.member;

public class MemberServiceImpl implements MemberService {

    private final MemberRepository memberRepository;

    public MemberServiceImpl(MemoryMemberRepository memoryMemberRepository) {
        this.memberRepository = memoryMemberRepository;
    }

    @Override
    public void join(Member member) {
        memberRepository.save(member);
    }

    @Override
    public Member findMember(Long memberId) {
        return memberRepository.findById(memberId);
    }

    //테스트용도
    public MemberRepository getMemberRepository(){
        return memberRepository;
    }
}
package hello.core.order;

import hello.core.discount.DiscountPolicy;
import hello.core.member.Member;
import hello.core.member.MemberRepository;

public class OrderServiceImpl implements OrderService{

    private final MemberRepository memberRepository;
    private final DiscountPolicy discountPolicy;


    public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
        this.memberRepository = memberRepository;
        this.discountPolicy = discountPolicy;
    }

    @Override
    public Order createOrder(Long memberId, String itemName, int itemPrice) {
        Member member = memberRepository.findById(memberId);
        int discountPrice = discountPolicy.discount(member, itemPrice);

        return new Order(memberId, itemName, itemPrice, discountPrice);
    }

    public MemberRepository getMemberRepositoryO() {
        return memberRepository;
    }
}

강의코드

 

spring 객체지향

답변 1

1

OMG

안녕하세요. 궁금증연구소님, 공식 서포터즈 OMG입니다.

바로 다음 강의에서도 설명해주시지만, AppConfig에 @Configuration 어노테이션이 누락될 경우 싱글톤을 보장하지 않아 겪으신 상황과 동일한 상황이 발생할 수 있습니다.

AppConfig클래스를 확인해주세요.

그리고 @Bean 등록 시 static 키워드가 포함되어 있다면 이 때도 싱글톤을 보장하지 않으니 같이 확인해주세요 😀

감사합니다.

JAVA로 백엔드 프로젝트

0

62

1

자바 실무 단계

0

312

2

Desktop용 게임 개발에도 도움이 될까요?

0

202

1

MVC 패턴을 정확히 익힐려면 어떻게 해야할까요?

0

352

1

공부 방향

0

318

1

선생님 조언 부탁드립니다.

0

284

0

WebFlux를 실무에 적용하기 전에 고민이 있습니다.

0

303

0

코딩테스트 준비

0

467

1

공부하다 진도를 못 나가고 있어요 ㅜㅜ

0

408

1

프로젝트를 하기 위한 커리큘럼

0

373

1

코드 리뷰 부탁드립니다!

1

378

1

코딩테스트 + 프로젝트를 위한 진도 정도

0

363

1