/* ์ด ๊ธ์ ๊น์ํ๋์ ๊ฐ์๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ๋ ค๊ณ ์์ฑํ ๊ธ์ ๋๋ค.
๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ํด ์ฌ๋ฆฌ๋ ๊ธ์ด๋ฏ๋ก ์ค๊ฐ ์ค๊ฐ ์ฝ๋๋ ์๋ต๋์์ต๋๋ค. */
์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์
์คํ๋ง ์ ๋ฌธ์๊ฐ ์์ ๋ฅผ ๋ง๋ค์ด๊ฐ๋ฉด์ ์คํ๋ง์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์คํ๋ง ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ์คํ ๋ค์ง ์ ์์ต๋๋ค., ์คํ๋ง ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์ฑ์ฅํ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ ๋์ด๋ณด์ธ์! ๐ข
์ค๋ณต ๋ฑ๋ก๊ณผ ์ถฉ๋
1. ์ค๋ณต ๋ฑ๋ก ์ํฉ
์ปดํฌ๋ํธ ์ค์บ์์ ๊ฐ์ ๋น ์ด๋ฆ์ ๋ฑ๋กํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
โ ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก
โ ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก
2. ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก
โ ์ปดํฌ๋ํธ ์ค์บ์ ์ํด ์๋์ผ๋ก ์คํ๋ง ๋น์ด ๋ฑ๋ก๋๋๋ฐ, ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ ์คํ๋ง์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํด
(` ConflictingBeanDefinitionException` ์์ธ ๋ฐ์)
3. ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก
AutoAppConfig
public class AutoAppConfig {
@Bean(name = "memoryMemberRepository")
MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
}
MemoryMemberRepository
@Component
public class MemoryMemberRepository implements MemberRepository{
private static Map<Long, Member> store = new HashMap<>();
@Override
public void save(Member member) {
store.put(member.getId(), member);
}
@Override
public Member findById(Long memberId) {
return store.get(memberId);
}
}
โ AutoAppConfig์ `memoryMemberRepository`๋ผ๋ ์ด๋ฆ์ ๋น์ ์๋์ผ๋ก ์์ฑ
โ MemoryMemberRepository์์๋ `memoryMemberRepository`๋ผ๋ ์ด๋ฆ์ ๋น์ ์๋์ผ๋ก ์์ฑ
โ ์ด ๋ ํ ์คํธ๋ฅผ ๋๋ฆฌ๋ฉด ์ด๋ค๊ฒฐ๊ณผ๊ฐ ๋์ฌ๊น?
โ ์ด ๊ฒฝ์ฐ ์๋ ๋น์ด ๋ฑ๋ก ์ฐ์ ๊ถ์ ๊ฐ์ง๋ฉฐ, ์๋๋น์ ์ค๋ฒ๋ผ์ด๋ฉ ํ๋ค.

โ ์๋๋ณด๋ค๋ ์๋์ด ์ฐ์ ๊ถ์ ๊ฐ์ง๋ ๊ฒ์ด ์ข์ง๋ง, ํ์ค์ ์ผ๋ก ์ด๋ฐ์์ผ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ง๋ค์ด์ง๋ฉด ์ ๋ง ์ก๊ธฐ ์ด๋ ค์ด! ์ ๋งคํ ๋ฒ๊ทธ๊ฐ ๋ง๋ค์ด ์ง ์ ์๋ค.
โ ๊ทธ๋์ ์ต๊ทผ ์คํ๋ง ๋ถํธ์์๋ ์๋ ๋น ๋ฑ๋ก๊ณผ ์๋ ๋น ๋ฑ๋ก์ด ์ถฉ๋๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ก ๊ธฐ๋ณธ๊ฐ์ ๋ฐ๊พธ์๋ค.
Description:
The bean 'memoryMemberRepository', defined in class path resource [hello/core/AutoAppConfig.class], could not be registered. A bean with that name has already been defined in file [hello\core\member\MemoryMemberRepository.class] and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
โ ์คํ๋ง ๋ถํธ๋ก ์คํ ์ ๋์ค๋ ์ค๋ฅ ๋ฉ์ธ์ง. ์น์ ํ๊ฒ ๋ฐ์ ์ถฉ๋์ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์ ํ ์๋ค.
