반응형
IoC의 개념
IoC(제어권의 역전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다.
컴포넌트 의존 관계 결정, 설정 및 생명주기를 해결하기 위한 디자인 패턴
자주 사용하는 객체는 미리 메모리에 올려놓아 효율성을 올리는 방식이다. 스프링 컨테이너가 IoC를 구현한다.

IoC컨테이너
스프링 프레임워크도 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있음, 즉, IoC컨테이너 기능을 제공한다.
- IoC 컨테이너는 객체의 생성을 책임지고, 의존성을 관리한다.
- POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다.
- 개발자들이 직접 POJO를 생성할 수 있지만 컨테이너에게 맡긴다.

IoC분류

DL(Dependency Lookup) 의존성 검색

저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 Lookup 하는 것
DI(Dependency Injection) 의존성 주입
각 클래스간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것

Spring Toll Suite4 생성
life-with-coding.tistory.com/369
[STS] Spring Tool Suite4에서 Legacy Project 생성
인트로 STS4(Spring Tools Suite4)에 Spring Legacy Project를 띄우기 위해서는 STS3이 필요합니다. STS4에서는 Legacy Project를 지원하지 않기 때문에 별도로 설치해주어야합니다. Spring Legacy Project(Sprin..
life-with-coding.tistory.com
실습예제



src/main/resources/spring-context.xml 코드
bean 부분 중요
<?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="helloDAO" class="kr.co.acomp.hello.HelloDAO"></bean>
</beans>
src/main/java
->kr.co.acomp.hello
-->HelloDAO.java
package kr.co.acomp.hello;
public class HelloDAO {
public int addTwoNumber(int a, int b){
return a+b;
}
}
src/main/java
->kr.co.acomp.hello
-->HelloMain.java
package kr.co.acomp.hello;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
//HelloDAO dao = new HelloDAO();
//int result =- dao.addTwoNumber(3, 5);
//DI 문법
AbstractApplicationContext ctx =
new ClassPathXmlApplicationContext("/spring-context.xml");
HelloDAO dao = ctx.getBean("helloDAO",HelloDAO.class);
int result = dao.addTwoNumber(5,67);
System.out.println(result);
}
}
반응형
'Spring > [강의] Spring FrameWork' 카테고리의 다른 글
[Spring 6강] - Layered Architechture (0) | 2021.02.16 |
---|---|
[Spring 강의 5장] - Dependency Injection (0) | 2021.02.16 |
[Spring 3강] - 스프링과 메이븐(Maven) (0) | 2021.02.04 |
[Spring 2강] - 스프링과 메이븐(Maven) (0) | 2021.02.01 |
[Spring 강의 1강] Spring 역사 (0) | 2021.02.01 |