57. 스프링의 동작구조, 셋팅하기

hanahana·2022년 9월 2일
0

Spring 학원수강

목록 보기
2/45
post-thumbnail

제어의 역행

IoC (제어의 역행)
IoC(Inversion of Control)란, 프로그램을 구동하는데 필요한 객체에 대한 생성, 변경
등의 관리를 프로그램을 개발하는 사람이 아닌 프로그램을 구동하는 컨테이너에서 직접
관리하는 것을 말한다.
스프링은 IoC 구조를 통해 구동 시 필요한 객체의 생성부터 생명 주기까지 해당 객체에
대한 관리를 직접 수행한다

스프링에서는 관리하는 객체를 'Bean(빈)'이라고 하고, 해당 빈들을 관리한다는 의미로
컨테이너를 'Bean Factory'라고 한다

IoC 컨테이너의 역할

  1. 객체의 생명주기와 의존성을 관리한다.
  2. VO(DTO/POJO) 객체의 생성, 초기화, 소멸 등의 처리를 담당한다.
  3. 개발자가 직접 객체를 생성할 수 있지만 해당 권한을 컨테이너에
    맡김으로써 소스 코드 구현의 시간을 단축할 수 있다

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>
  • 저장하면 바로 다운됨
  • C:\tools\apache-maven-3.8.6\repository\org\springframework\spring-jcl\5.2.19.RELEASE 밑에 자바파일 생긴걸 확인할수 있음
  • 업데이트 프로젝트 하기

이제 메이븐이면서 스프링인 상태가되었다!! 와아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>
  • id만들어주고 class에는 상속받은 class의 경로를 쓴다

다시 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 ^^

움… 모르겠다

profile
hello world

0개의 댓글