๋ชฉ์ฐจ
- ์ปจํ ์ด๋๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ
- Bean์ ๋ฒ์
- ์ค์ ํ์ผ์ด ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ!
์ปจํ ์ด๋๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ
1) src/main/resources/applicationContext.xmlํ์ผ ์์ฑ
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id = "tWalk" class = "testPjt.TransportationWalk"/> //bean์ผ๋ก ๊ฐ์ฒด ์์ฑ๋จ
</beans>
2) MainClass ์ฝ๋ ์์ฑ
package testPjt;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
// TransportationWalk transportationWalk = new TransportationWalk();
// transportationWalk.move();
// ์คํ๋ง ์ปจํ
์ด๋์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationContext.xml");
TransportationWalk transportationWalk = ctx.getBean("tWalk", TransportationWalk.class);
transportationWalk.move();
ctx.close();
}
}
๊ฒฐ๊ณผ ํ๋ฉด!
Bean์ ๋ฒ์
Singleton๋ฒ์ : ์คํ๋ง ์ปจํ ์ด๋์์ ์์ฑ๋ bean๊ฐ์ฒด์ ๊ฒฝ์ฐ ๋์ผํ ํ์ ์ ๋ํด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๊ฐ๋ง ์์ฑ์ด ๋๋ฉฐ, getBean() ๋ฉ์๋๋ก ํธ์ถ๋ ๋ ๋์ผํ ๊ฐ์ฒด๊ฐ ๋ฐํ๋๋ค.
Prototype ๋ฒ์ : ์ฑ๊ธํค ๋ฒ์์ ๋ฐ๋ ๊ฐ๋ ์ผ๋ก getBean()ํ ๋๋ง๋ค ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
์คํ๋ง ์ค์ ํ์ผ์์ bean๊ฐ์ฒด๋ฅผ ์ ์ํ ๋, scope์์ฑ์ ๋ช ์ํด์ค๋ค.
์ค์ ํ์ผ์ด ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ!
์ค์ ํ์ผ์ด ๊ธธ์ด์ง ๊ฒฝ์ฐ ํจ์จ์ฑ์ ์ํด์ ์ฌ๋ฌ ์ค์ ํ์ผ๋ก ๋ถ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
์ด๋ด ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์๊น?
๋ฐฉ๋ฒ1) stringํํ์ context
package testPjt;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
// ์คํ๋ง ์ปจํ
์ด๋์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ => stringํํ์ context
String [] appCtxs = {"classpath:appCtx1.xml", "classpath:appCtx2.xml", classpath:appCtx3.xml}
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(appCtxs);
TransportationWalk transportationWalk = ctx.getBean("tWalk", TransportationWalk.class);
transportationWalk.move();
ctx.close();
}
}
๋ฐฉ๋ฒ2) ํ ์ค์ ํ์ผ์์ ๋ค๋ฅธ ์ค์ ํ์ผ๋ค์ import
#MainClass
package testPjt;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
// ์คํ๋ง ์ปจํ
์ด๋์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ => ๋ค๋ฅธ ์ค์ ํ์ผ์ importํ๋ ์ค์ ํ์ผ๋ง ๋ก๋
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:appCtxImport.xml");
TransportationWalk transportationWalk = ctx.getBean("tWalk", TransportationWalk.class);
transportationWalk.move();
ctx.close();
}
}
#appCtxImport.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
// ์ค์ ํ์ผ import
<import resource="classpath:appCtx2.xml">
<import resource="classpath:appCtx3.xml">
</beans>
'๐ปWEB BackEnd > ํ๋ ์์ํฌ Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DI(Dependency Injection) (0) | 2022.11.03 |
---|---|
ํ๋ก์ ํธ ์์ฑ - (๋ฐฉ๋ฒ2)๋ก์ปฌ์์ ์ง์ ์์ฑ (0) | 2022.11.01 |
๊ฐ์ฒด ์์ฑ - (๋ฐฉ๋ฒ1) new์ฐ์ฐ์๋ฅผ ์ด์ฉ (0) | 2022.11.01 |
์์ฃผ ์ฐ์ด๋ ์ดํด๋ฆฝ์ค ๋จ์ถํค (0) | 2022.11.01 |
ํ๋ก์ ํธ ์์ฑ - (๋ฐฉ๋ฒ1)eclipse์์ ์์ฑ (0) | 2022.11.01 |