• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Bean 등록시 EntityManager 오류 질문드립니다.

21.07.10 14:38 작성 조회수 5.26k

0

안녕하세요. 핵심원리를 듣고 이번 강의를 들으면서 배운 것을 적용하려고 시도해보았습니다.

Service interface와 Repository interface를 생성하여, componentscan을 사용하여 빈을 등록하려고 했습니다. 

기존 service와 repository를 Impl로 바꾸어 @Component 어노테이션을 붙여 의존관계를 자동 주입하려고 했습니다. 

```

@Component
@Transactional
public class MemberServiceImpl implements MemberService {



private final MemberRepository memberRepository;


@Autowired
public MemberServiceImpl(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}

```

@Component
public class MemoryMemberMemberRepository implements MemberRepository {


@PersistenceContext
private final EntityManager em;

@Autowired
public MemoryMemberMemberRepository(EntityManager em) {
this.em = em;
}@Configuration
@ComponentScan(
excludeFilters = @ComponentScan.Filter(classes=Configuration.class)
)
public class AppConfig {
}

@Test
public void 회원가입() throws Exception{
//given
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);

해당 코드를 테스트를 시도하였지만 

No qualifying bean of type 'javax.persistence.EntityManager' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

이라는 오류가 발생하였습니다.  개념이 많이 부족하여 질문을 제대로 했는지도 정확하지않고, 해당 오류가 왜 나는지 잘 모르겠습니다 ㅠㅠ 

답변 5

·

답변을 작성해보세요.

2

안녕하세요. 민수님

코드를 봐야 정확히 알 수 있을 것 같아요. OMG님 이야기를 참고해보시고 그래도 잘 안되면

전체 프로젝트를 압축해서 구글 드라이브로 공유해주세요.

감사합니다.

0

박준태님의 프로필

박준태

2022.09.29

저도 빈오류가 나네요?

 

OMG님의 프로필

OMG

2022.09.29

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


전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

권한 문제 꼭 확인해주세요
공유 기본 설정은 비공개로 되어 있어 업로드 한 본인 계정만 접근이 가능합니다.

본인 계정이 아닌 링크를 통한 타 계정 접근이 가능한지 확인하는 방법은 업로드 한 구글 계정을 로그아웃하고 링크를 접속하여 "액세스 권한 요청 화면"이 출력되는지 확인을 해주세요.

감사합니다

0

코딩왕님의 프로필

코딩왕

2022.08.17

해결하셨나요?? 저도 빈오류가나네요

0

OMG님의 프로필

OMG

2021.07.10

안녕하세요. 김민수님, 공식 서포터즈 OMG입니다.

주입을 하려면 스프링으로 관리하는 Bean이 되어야겠죠?

JPA와 스프링은 각자의 방식(영속성 컨텍스트와 스프링 컨테이너)으로 빈을 관리하거나 엔티티를 관리합니다.

아래의 링크를 참고해주세요.

https://stackoverflow.com/questions/22301426/no-qualifying-bean-of-type-javax-persistence-entitymanager

감사합니다.

0

김민수님의 프로필

김민수

질문자

2021.07.10

 컴포넌트스캔 필터로 Configuration를 제외해서  EntityManager를 주입에 실패하는 건가요?

이해가 잘 안됩니다 ㅠㅠ