05. Component

Bean์„ ๋”ฐ๋กœ ๋“ฑ๋กํ•˜์ง€ ์•Š์•„๋„ @Component ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์ด๋ฉด ์ž๋™์œผ๋กœ ๋“ฑ๋ก๋œ๋‹ค.

ย  ๐Ÿฅ‘ ์‹ค์Šต์„ ์œ„ํ•œ ์•„๋ณด์นด๋„ ํด๋ž˜์Šค ๐Ÿฅ‘

Component ์–ด๋…ธํ…Œ์ด์…˜์€ ํด๋ž˜์Šค์— ๋ถ™์ธ๋‹ค.

1๏ธโƒฃ ย XML ํŒŒ์ผ์—์„œ์˜ ์‚ฌ์šฉ๋ฒ•

  1. context:component-scan ํƒœ๊ทธ๋กœ base-package ์•ˆ์— ์ž…๋ ฅํ•œ ํŒจํ‚ค์ง€๋ฅผ ์Šค์บ”ํ•˜์—ฌ ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ„์„ํ•œ๋‹ค.

  2. ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค๋“ค์€ ์ง์ ‘ Bean ์„ ๋“ฑ๋กํ•ด์•ผ ํ•œ๋‹ค.

  3. ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค ํ•˜๋”๋ผ๋„ xml ํŒŒ์ผ์—์„œ Bean ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.

<context:component-scan base-package="beans" />

2๏ธโƒฃ ย JAVA ํŒŒ์ผ์—์„œ์˜ ์‚ฌ์šฉ๋ฒ•

  1. Configuration ํŒŒ์ผ์—์„œ @ComponentScan ์–ด๋…ธํ…Œ์ด์…˜๊ณผ ํŒจํ‚ค์ง€๋ช…์„ ์ ์–ด๋„ฃ์œผ๋ฉด ๋™์ž‘ํ•œ๋‹ค.

  2. basePackages ์— ์ ํžŒ ํŒจํ‚ค์ง€๋ช…์„ ์Šค์บ”ํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋™์ž‘์‹œํ‚จ๋‹ค.

@Configuration
@ComponentScan(basePackages = "beans")
public class BeanClass {
    ...
}
  1. @Component ์–ด๋…ธํ…Œ์ด์…˜์„ ์ ์–ด๋„ฃ์€ ํด๋ž˜์Šค๋งŒ ๋ณ„๋„์˜ Bean ๋“ฑ๋ก ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
@Component
@Lazy
public class Avocado {
	...
}