์คํ๋ง ์ปจํ ์ด๋๋
ํด๋์ค ํจ์ค์ ์๋ ํด๋์ค๋ค์ ์ค์บํ์ฌ
@Component๊ฐ ์ค์ ๋ ํด๋์ค๋ค์ ์๋์ผ๋ก ๊ฐ์ฒด ์์ฑํ๋ค.
์ด๋ ธํ ์ด์ ์ค์ ํ๋ ๋ฐฉ๋ฒ
1. Context ๋ค์์คํ์ด์ค ์ถ๊ฐ
<context:component-scan/> ์๋ฆฌ๋จผํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์์ด๋ค.
2. ์ปดํฌ๋ํธ ์ค์บ(component-scan) ์ค์
<context:component-scan/> ์๋ฆฌ๋จผํธ์ base-package๋ก ์ง์ ํ ํจํค์ง๋ก
์์ํ๋ ๋ชจ๋ ํจํค์ง๊ฐ ์ค์บ ๋์์ ํฌํจ๋๋ค.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<context:component-scan base-package="polymorphism"></context:component-scan>
</beans>
3. ๊ฐ์ฒด ์์ฑ์ ์ํ๋ ํด๋์ค์ @Component์ผ๋ก ์ง์
๊ธฐ๋ณธ ์์ฑ์๊ฐ ์์ด์ผ๋ง ์ปจํ ์ด๋๊ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
package polymorphism;
import org.springframework.stereotype.Component;
@Component
public class LgTV implements TV {
public LgTV() {
System.out.println("===> LgTV ๊ฐ์ฒด ์์ฑ");
}
// ๋ฉ์๋ ์๋ต
}
๋ง์ฝ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์์ ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์์ฑํ ๊ฐ์ฒด๋ฅผ ์์ฒญํ๊ธฐ ์ํด์ ,
๋ฐ๋์ ์ฌ์ฉํ id๋ name์ด ์ค์ ๋์ด ์์ด์ผ ํ๋ค.
package polymorphism;
import org.springframework.stereotype.Component;
@Component("tv")
public class LgTV implements TV {
public LgTV() {
System.out.println("===> LgTV ๊ฐ์ฒด ์์ฑ");
}
// ๋ฉ์๋ ์๋ต
}
id๋ name ์์ฑ ๋ฏธ์ง์ ์, ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ํด๋์ค ์ด๋ฆ์ ์ฒซ ๊ธ์๋ฅผ ์๋ฌธ์๋ก ๋ณ๊ฒฝํ ์ด๋ฆ์ผ๋ก ์ค์ ํด์ค๋ค.
'Spring > Spring Quick Start' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น์ฆ๋์ค ์ปดํฌ๋ํธ ์ค์ต (0) | 2020.12.29 |
---|---|
@Service, @Repository, @Controller์ ๊ฐ๋ตํ ์ค๋ช (0) | 2020.12.29 |
DI ์ด๋ ธํ ์ด์ ; @Autowired, @Inject, @Qualifier, @Resource (0) | 2020.12.29 |
์ปฌ๋ ์ ๊ฐ์ฒด ์ค์ ์ข ๋ฅ (0) | 2020.12.29 |
Setter ์ธ์ ์ ์ด์ฉํ๊ธฐ (p ๋ค์์คํ์ด์ค) (0) | 2020.12.29 |
์์ฑ์ ์ธ์ ์ (Constructor Injection) ์ด์ฉํ๊ธฐ (0) | 2020.12.29 |