Spring
โญXml->Annotation
(์ถ์ฒ:https://www.youtube.com/watch?v=S065KRjXRSY&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=12&t=90s)
XML์ ์ด์ฉํ๋ค๋ฉด B2๋ฅผ B3๋ก ๋ฐ๊พธ๊ณ ์ถ์๋ ์ค์ ํ์ผ ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ค.
์์ค์ฝ๋๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ์ค์ ํ์ผ๋ง ์์ ํ ์ ์๋ค๋ ์ ์ด ์์ ์๋ ์ข์์ง๋ง, ์ค์ ํ์ผ์ ์์ ํ๋๊ฒ์ ๋ถํธํจ์ ๋๋ผ๊ฒ ๋์๋ค.
์์ค์ฝ๋์ ์ค์ ์ ์ฌ๋ ์ด๋ ธํ ์ด์ ์ ํ์ฉํ๊ธฐ ์์ํ๋ค.
โญ@Autowired์ ์ด์ฉํ DI
(์ถ์ฒ:https://www.youtube.com/watch?v=S065KRjXRSY&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=12&t=90s)
<property>
๋์ console์ ๊ฐ๋ฉด ์๋ setter๋, setter๊ฐ ์ด์ฉํ๋ ์์ฑ์ @Autowired ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
<?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:util="http://www.springframework.org/schema/util"
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/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
<context:annotation-config/>
<bean id="exam" class="spring.di.entity.NewlecExam" p:kor="10" />
<bean id="console" class="spring.di.ui.InlineExamConsole">
<!-- <property name="exam" ref="exam"/> -->
</bean>
</beans>
namespace์์ context๋ฅผ ์ถ๊ฐํ์๋ค.(xmlns:context="http://www.springframework.org/schema/context"
)
<context:annotation-config/>
ํ๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ์ ๊ฐ์ฒด๋ค์ด annotation์ ๊ฐ๊ณ ์๋ค๋ ๊ฒ์ ์๋ ค์ฃผ์ด์ผ ํ๋ค
public class InlineExamConsole implements ExamConsole {
...
private Exam exam;
@Autowired
@Override
public void setExam(Exam exam) {
this.exam = exam;
}
}
setExam์ด๋ผ๋ setter์์ @Autowired
๋ฅผ ์ถ๊ฐํ๋ฉด spring์ด DIํด์ค
๐<property>
๋ฅผ ์ฌ์ฉํ์๋๋ ref์์ฑ์ ํตํด ์ด๋ ํ ๊ฐ์ฒด๋ฅผ diํด์ผํ๋์ง ์๋ ค์ฃผ์์ง๋ง, Autowired
๋ ๋ฌด์์ ๊ทผ๊ฑฐ๋ก exam๊ฐ์ฒด๋ฅผ diํด์ค๊น?
exam๊ฐ์ฒด๊ฐ 2๊ฐ ์์ผ๋ฉด ์ด๋ค ๊ฐ์ฒด๋ฅผ di ํด์ฃผ๋๊ฐ?
์ ๋ ๋ฌผ์์ ๋ํ ๋ต์ Autowired์ ๋์๋ฐฉ์์ ์ดํดํด์ผ ํ๋ค(๋ค์์ฅ)
'๐๋ฐฑ์๋ : BackEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] <context : annotation-config> vs <context : component-scan> (0) | 2023.06.19 |
---|---|
[Spring]@Autowired๋์๋ฐฉ์๊ณผ @Qualifier (0) | 2023.06.19 |
[Spring]์ฝ๋ ์ ์์ฑ๊ณผ DI (0) | 2023.06.19 |
[Spring]DI ์ง์์ (0) | 2023.06.19 |
[Spring] ์์ (0) | 2023.06.19 |