Spring

Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ [์ปดํฌ๋„ŒํŠธ ์Šค์บ”]

2021. 7. 12. 12:35
๋ชฉ์ฐจ
  1. [ @Component ์• ๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ ]
  2. [ ํ•„ํ„ฐ(Filter) ]
  3. [ ์ค‘๋ณต & ์ถฉ๋Œ ]

@Bean๊ณผ xml์„ ์ด์šฉํ•ด์„œ ๋นˆ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋“ฑ๋กํ•ด์•ผ ํ•  ๋นˆ์ด ๋งŽ์„ ๋•Œ ๋ฒˆ๊ฑฐ๋กœ์›Œ ์ง„๋‹ค.

@Conponent ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋นˆ์— ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

โž• ์˜์กด๊ด€๊ณ„๋Š” @Autowired ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค.

 

[ @Component ์• ๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ ]

@Configuration
@ComponentScan
public class AutoAppConfig {}

๋จผ์ € AppConfig๋ฅผ ๋งŒ๋“ค๊ณ , @Configuration๊ณผ @Component๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค. 

์ค‘์š”ํ•œ ๊ฑด ์ด ํด๋ž˜์Šค๋Š” package hello.core; ์— ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค!

๋งŒ๋“  ์œ„์น˜์˜ ํ•˜์œ„ ํด๋”๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

์œ„ ์‚ฌ์ง„ ์ฒ˜๋Ÿผ ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋Œ€์ƒ์ด ๋˜์–ด์•ผ ํ•  ํด๋ž˜์Šค์— ์ปดํฌ๋„ŒํŠธ ์• ๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ์ค€๋‹ค.

๊ทธ๋Ÿผ ์˜์กด ๊ด€๊ณ„๋Š” ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ• ๊นŒ?

 

@Bean์˜ ๊ฒฝ์šฐ์—๋Š” 

    @Bean
    public MemberService memberService() {
        return new MemberServiceImpl(memberRepository());
    }
    @Bean
    public MemoryMemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }

์ง์ ‘ ์ด๋ ‡๊ฒŒ ์˜์กด๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•ด์คฌ์ง€๋งŒ, ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋Š” @Autowired๋ฅผ ์‚ฌ์šฉํ•ด์ค€๋‹ค.

 

@Autowired //์˜์กด๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž…
    public MemberServiceImpl(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }

์ด๋ ‡๊ฒŒ ์˜์กด๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด์•ผํ•˜๋Š” ๋ถ€๋ถ„์— ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค.

 

[ ํ•„ํ„ฐ(Filter) ]

  • includeFilters : ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋Œ€์ƒ์„ ์ถ”๊ฐ€๋กœ ์ง€์ •ํ•œ๋‹ค.
  • excludeFilters : ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์—์„œ ์ œ์™ธํ•  ๋Œ€์ƒ์„ ์ง€์ •ํ•œ๋‹ค.

excludeFilters๋ฅผ ์ง€์ •ํ•œ ๋นˆ์„ ๊บผ๋‚ด๊ฒŒ ๋  ๊ฒฝ์šฐ์—๋Š” NoSuchBeanDefinitionException ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์‹ค๋ฌด์—์„œ๋Š” includeFilters๋ฅผ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

 

[ ์ค‘๋ณต & ์ถฉ๋Œ ]

๋นˆ์„ ์ˆ˜๋™์œผ๋กœ ๋“ฑ๋กํ•  ๊ฒฝ์šฐ์™€ ์ž๋™์œผ๋กœ ๋“ฑ๋กํ•  ๊ฒฝ์šฐ์—, ์ด๋ฆ„์ด ๊ฐ™์œผ๋ฉด ์ค‘๋ณต์ด ๋˜๊ณ , ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์ˆ˜๋™์œผ๋กœ ๋“ฑ๋กํ•œ ๋นˆ์ด ์ž๋™์œผ๋กœ ๋“ฑ๋กํ•œ ๋นˆ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์•„์„œ ์ˆ˜๋™๋นˆ์ด ์ž๋™๋นˆ์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ˜ผ๋ž€์„ ๋ง‰๊ธฐ์œ„ํ•ด์„œ ์ค‘๋ณต์„ ๊ธˆ์ง€ํ•œ๋‹ค!!

์ด๋Ÿฐ ๋ฒ„๊ทธ๋Š” ๋ฐœ๊ฒฌํ•˜๊ธฐ๋„ ์–ด๋ ต๊ธฐ๋•Œ๋ฌธ์— ์• ์ดˆ์— ์ด๋Ÿฐ ์ฝ”๋“œ๋ฅผ ์งœ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

CoreApplication ํด๋ž˜์Šค๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๊ฐ€ ๋œฌ๋‹ค.

๋งŒ์•ฝ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ—ˆ๋ฝํ•œ๋‹ค๋ฉด application.properties์— Action๋ฌธ๊ตฌ๋ฅผ ๋ณต๋ถ™ํ•˜๋ฉด ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๊ฑด ์ข‹์ง€ ์•Š์œผ๋‹ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

 


@Bean ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ํ˜๋ช…์ ์ด๋‹ค...! ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ด๊ฒƒ๋ณด๋‹ค ๋” ๊ฐ„๊ฒฐํ•œ @Component๊ฐ€ ์žˆ๋‹ค๋‹ˆ ์‹ ๊ธฐํ–ˆ๋‹ค,,

๋จธ๋ฆฟ์†์ด ๋ณต์žกํ•˜๋‹ค! ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐ˜๋ณตํ•˜๊ณ  ์—ฐ์Šตํ•ด์•ผ์ง€ ูฉฬ‹(หŠโ€ขอˆ ๊‡ด โ€ขอˆห‹)ูˆ 

์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ์˜ ๊น€์˜ํ•œ ๊ฐ•์‚ฌ๋‹˜ spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธํŽธ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์ž‘์„ฑ๋œ ๋ณต์Šต ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.

'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ[ ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ]  (0) 2021.07.17
Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ [@Autowired/@Qualifier/@Primary]  (0) 2021.07.16
Spring ๊ธฐ๋ณธ [ ์‹ฑ๊ธ€ํ†ค/์Šคํ”„๋ง์ปจํ…Œ์ด๋„ˆ]  (0) 2021.07.11
Spring ๊ธฐ๋ณธ [์Šคํ”„๋ง๋นˆ ์กฐํšŒ]  (0) 2021.07.09
Spring ๊ธฐ๋ณธ [ํ• ์ธ์ •์ฑ… ๋ณ€๊ฒฝ/๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ ์ ์šฉ/DI/์Šคํ”„๋ง์ปจํ…Œ์ด๋„ˆ]  (0) 2021.07.08
  1. [ @Component ์• ๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ ]
  2. [ ํ•„ํ„ฐ(Filter) ]
  3. [ ์ค‘๋ณต & ์ถฉ๋Œ ]
'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ[ ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ]
  • Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ [@Autowired/@Qualifier/@Primary]
  • Spring ๊ธฐ๋ณธ [ ์‹ฑ๊ธ€ํ†ค/์Šคํ”„๋ง์ปจํ…Œ์ด๋„ˆ]
  • Spring ๊ธฐ๋ณธ [์Šคํ”„๋ง๋นˆ ์กฐํšŒ]
DAHLIA CHOI
DAHLIA CHOI
DAHLIA CHOI
๐ŸŒผ dali's log ๐ŸŒผ
DAHLIA CHOI
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (103)
    • Spring (42)
    • JAVA & OOP (8)
    • AWS (2)
    • DevOps (5)
    • Network (7)
    • DB (5)
    • Algorithm (9)
      • BOJ (6)
      • PROGRAMMERS (2)
      • LEETCODE (0)
    • Books (5)
    • ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… (5)
    • ํšŒ๊ณ  (0)
    • ๊ธฐํƒ€ (5)
    • FRENCH (1)
    • ํ•„์‚ฌ (2)
    • ๊ฒฝํ—˜ (5)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
DAHLIA CHOI
Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ [์ปดํฌ๋„ŒํŠธ ์Šค์บ”]
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.