제어의 역행
IoC (제어의 역행)
IoC(Inversion of Control)란, 프로그램을 구동하는데 필요한 객체에 대한 생성, 변경
등의 관리를 프로그램을 개발하는 사람이 아닌 프로그램을 구동하는 컨테이너에서 직접
관리하는 것을 말한다.
스프링은 IoC 구조를 통해 구동 시 필요한 객체의 생성부터 생명 주기까지 해당 객체에
대한 관리를 직접 수행한다
스프링에서는 관리하는 객체를 'Bean(빈)'이라고 하고, 해당 빈들을 관리한다는 의미로
컨테이너를 'Bean Factory'라고 한다
IoC 컨테이너의 역할
bean - 클래스를 대신하는것 class가스프링컨테이너로 사용될때 bean으로 사용됨 class랑 다르지만 연관은있고 비슷하게 써짐.. 음.. 일단 그럼…
Springregacy로 프로젝트 만듦 일단 simplejava
메이븐 프로젝트로 바꿈
패키지 작성으로 메이븐프로젝트 만들면 폴더에 s가 사라짐
스프링 핵심장비 접속 :
https://mvnrepository.com/artifact/org.springframework/spring-context 5.2.1선택 maven복사
porm.xml안에
<version>0.0.1-SNAPSHOT</version>
<!--버전밑에!-->
<dependencies>
<!--dependencies 태그 쓰고 복붙-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.19.RELEASE</version>
</dependency>
</dependencies>
이제 메이븐이면서 스프링인 상태가되었다!! 와아1
class 만들자
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class HelloRun {
public static void main(String[] args) {
ApplicationContext ctx= new GenericXmlApplicationContext("");
}
}
src에 새파일 만들기
xml이름, 파일만듦
인터페이스 생성
public interface MessageBean {
public void sayHellow(String name);
}
public class MessageBeanHello implements MessageBean {
@Override
public void sayHellow(String name) {
System.out.println("Hello "+name);
}
}
클래스로 상속받음
아까만든 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 https://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="messageBean" class="org.kh.hellospring.MessageBeanHello">
</bean>
</beans>
다시 runClass로 와서
public static void main(String[] args) {
ApplicationContext ctx= new GenericXmlApplicationContext("spring-context.xml");
//방금 만든 xml파일
MessageBean bean = (MessageBeanHello)ctx.getBean("messageBean");
//MessageBeanHello라는 xml파일로 형변환 //xml파일의 id
bean.sayHellow("spring ^^");
//MessagBean bean = new MessageBean();
//bean.sayHellow와 같다.
}
}
출력결과 : Hello spring ^^
움… 모르겠다