๐ปWEB BackEnd/ํ๋ ์์ํฌ Spring (9) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์์กด ๊ฐ์ฒด ์๋ ์ฃผ์ ๋ชฉ์ฐจ ์์กด ๊ฐ์ฒด ์๋ ์ฃผ์ @Autowired, @Resource, @Inject ์์กด๊ฐ์ฒด ์ ํ ์์กด๊ฐ์ฒด ์๋ ์ฃผ์ ์ฒดํฌ ์์กด ๊ฐ์ฒด ์๋ ์ฃผ์ ์คํ๋ง ์ค์ ํ์ผ์์ ์์กด ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํ ๋, ๋๋ ํ๊ทธ๋ก ์์กด ๋์ ๊ฐ์ฒด๋ฅผ ๋ช ์ํ์ง ์์๋ ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ํ์ํ ์์กด ๋์ ๊ฐ์ฒด๋ฅผ ์ฐพ์์ ์์กด ๋์ ๊ฐ์ฒด๊ฐ ํ์ํ ๊ฐ์ฒด์ ์ฃผ์ ํด ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. @Autowired ์ฃผ์ ํ๋ ค๊ณ ํ๋ ๊ฐ์ฒด์ ํ์ ์ด ์ผ์นํ๋ ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์ฃผ์ @Autowired๋ ํ๋, ์์ฑ์, Setter์ ๋ถ์ผ ์ ์๋ค. ๋จ, @Autowired๋ฅผ ํ๋, Setter์ ๋ถ์ฌ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ๋์ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ์ ์๋์ด ์์ด์ผ ํ๋ค. 1) @Autowired - ํ๋ ์ฃผ์ public class WordRegisterServiceUs.. DI(Dependency Injection) ๋ชฉ์ฐจ DI(Dependency Injection)๋? ์คํ๋ง DI ์ค์ ๋ฐฉ๋ฒ ์คํ๋ง DI ์์ ๋ค์ํ ์์กด ๊ฐ์ฒด ์ฃผ์ ๋ฐฉ๋ฒ DI(Dependency Injection)๋? ๋ค์ ์ธ ๊ฐ์ง ๊ฒฝ์ฐ ๋ค DI๋ผ๊ณ ํ ์ ์๋ค. ๋ค๋ง, ์กฐ๊ธ์ฉ์ ์ฐจ์ด๊ฐ ์๋ค. ๋ฐฐํฐ๋ฆฌ ์ผ์ฒดํ : ์์ฑ์์์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ๋ฐฐํฐ๋ฆฌ ๋ถ๋ฆฌํ(1) : setter๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ๋ฐฐํฐ๋ฆฌ ๋ถ๋ฆฌํ(1) : ์์ฑ์, setter๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ # ๋ฐฐํฐ๋ฆฌ ์ผ์ฒดํ public class EletronicCarToy { private Battery battery; public ElectronicCarToy() { battery = new NormalBattery(); } } # ๋ฐฐํฐ๋ฆฌ ๋ถ๋ฆฌํ(1) public class EletronicR.. ํ๋ก์ ํธ ์์ฑ - (๋ฐฉ๋ฒ2)๋ก์ปฌ์์ ์ง์ ์์ฑ ๋ก์ปฌ์์ ํด๋(java, resources)์ ํ์ผ(pom.xml)์ ์ง์ ๋ง๋ค์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ 1) ํด๋(java, resources)์ "ํ๋ก์ ํธ ํด๋ > src ํด๋ > main ํด๋ > java, resources ํด๋" ๋ชจ๋ ์์ฑ 2) ํ์ผ(pom.xml) ์์ฑ srcํด๋์ ๊ฐ์ ์์น์ pom.xml ํ์ผ ์์ฑ 4.0.0 spring4 testPjt 0.0.1-SNAPSHOT org.springframework spring-context 4.1.0.RELEASE maven-compiler-plugin 3.1 1.8 1.8 UTF-8 3) ์ดํด๋ฆฝ์ค์์ importํ๊ธฐ ์ดํด๋ฆฝ์ค์์ Maven์ผ๋ก import ๊ฐ์ฒด ์์ฑ - (๋ฐฉ๋ฒ2) ์ปจํ ์ด๋๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ ๋ชฉ์ฐจ ์ปจํ ์ด๋๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ Bean์ ๋ฒ์ ์ค์ ํ์ผ์ด ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ! ์ปจํ ์ด๋๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ 1) src/main/resources/applicationContext.xmlํ์ผ ์์ฑ //bean์ผ๋ก ๊ฐ์ฒด ์์ฑ๋จ 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(); //.. ๊ฐ์ฒด ์์ฑ - (๋ฐฉ๋ฒ1) new์ฐ์ฐ์๋ฅผ ์ด์ฉ new์ฐ์ฐ์๋ฅผ ์ด์ฉํด ๊ฐ์ฒด ์์ฑ 1) ํด๋์ค ์์ฑ ํด๋์ค ์์ฑ ์๋ฃ! package testPjt; public class TransportationWalk { public void move() { System.out.println("hello"); } } 2) ๋ฉ์ธํด๋์ค ์์ฑ package testPjt; public class MainClass { public static void main(String[] args) { TransportationWalk transportationWalk = new TransportationWalk(); transportationWalk.move(); } } ๊ฒฐ๊ณผ ํ๋ฉด! ์์ฃผ ์ฐ์ด๋ ์ดํด๋ฆฝ์ค ๋จ์ถํค https://velog.io/@janeljs/eclipse-shortcuts ํ๋ก์ ํธ ์์ฑ - (๋ฐฉ๋ฒ1)eclipse์์ ์์ฑ ๋ชฉ์ฐจ ํ๋ก์ ํธ ์์ฑ pom.xml ์์ฑ ํด๋ ๋ฐ pom.xmlํ์ผ์ ์ดํด ํ๋ก์ ํธ ์์ฑ Maven์ ์ด์ฉํด์ ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์์ฑ ํ๋ก์ ํธ ์์ฑ ์๋ฃ! pom.xml ํ์ผ pom.xmlํ์ผ์ Maven ์ค์ ํ์ผ๋ก, Maven์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๊ณ , ๋น๋๋ฅผ ์ํ ํ๋ซํผ์ด๋ค. Maven์ ๋น๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํ์ผ POM(Project Object Model)์ ์ค์ ํ๋ ๋ถ๋ถ ํ๋ก์ ํธ ๋ด์ ๋น๋ ์ต์ ์ ์ค์ ํ๋ ๋ถ๋ถ pom.xml ํ์ผ ์์ฑ 4.0.0 spring4 testPjt 0.0.1-SNAPSHOT ์ ์๋์ ๊ฐ์ด , ์ฝ๋ ๋ถ๋ถ ์ถ๊ฐ 4.0.0 spring4 testPjt 0.0.1-SNAPSHOT org.springframework spring-context 4.1.0.RELEASE maven.. java, eclipse ์ค์น java ์ค์น ๋ค์ ์ฌ์ดํธ์์ x64 Installer ๋ฅผ ํด๋ฆญํด ๋ค์ด๋ก๋ ๋ฐ๊ธฐ https://www.oracle.com/java/technologies/downloads/#jdk19-windows Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com eclipse ์ค์น https://www.eclipse.org/downloads/ Eclipse Downloads | The Eclipse Foundation The Eclipse Foundation - home to .. ์คํ๋ง ์คํ๋ง ํ๋ ์์ํฌ ์คํ๋ง ํ๋ ์์ํฌ ์คํ๋ง ํ๋ ์์ํฌ๋ ์ฃผ์๊ธฐ๋ฅ์ผ๋ก DI, AOP, MVC, JDBC ๋ฑ์ ์ ๊ณตํ๋ค. ์คํ๋ง ํ๋ ์์ํฌ ๋ชจ๋ ์คํ๋ง ํ๋ ์์ํฌ์์ ์ ๊ณตํ๊ณ ์๋ ๋ชจ๋์ ์ฌ์ฉํ๋ ค๋ฉด, ๋ชจ๋์ ๋ํ ์์กด์ค์ ์ ๊ฐ๋ฐ ํ๋ก์ ํธ์์ XMLํ์ผ๋ค์ ์ด์ฉํด์ ๊ฐ๋ฐ์๊ฐ ์ง์ ํ๋ฉด ๋๋ค. spring-core DI, IoC ์ ๊ณต spring-aop AOP๊ตฌํ ๊ธฐ๋ฅ ์ ๊ณต spring-jdbc ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋ ๊ธฐ๋ฅ ์ ๊ณต spring-tx ์คํ๋ง์์ ์ ๊ณตํ๋ ํธ๋์ญ์ ๊ด๋ จ ๊ธฐ๋ฅ ์ ๊ณต spring-webmvc ์คํ๋ง์์ ์ ๊ณตํ๋ Controller์ View๋ฅผ ์ด์ฉํ MVC ๊ตฌํ ๊ธฐ๋ฅ ์ ๊ณต ์คํ๋ง ์ปจํ ์ด๋(IoC) ์คํ๋ง์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์กฐ๋ฆฝํ๋ ์ปจํ ์ด๋๋ก, ์ปจํ ์ด๋๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋น.. ์ด์ 1 ๋ค์