티스토리 뷰

Goal 

 - 일반 Java 프로젝트와 Spring 프로젝트의 개념적인 차이

 - 실제 구현을 통한 두 프로젝트의 차이 비교

 

1. Java파일을 이용한 프로젝트 실행

 - 일반 Java 프로젝트 : 순수 Java를 가지고 프로젝트 처리.

 - Spring 프레임워크 : pom.xml파일을 통해 모듈을 불러와 프로젝트를 처리.

2. 스프링을 이용한 개발

 - resources : Java를 통한 개발을 도와주는 파일들을 보관하는 폴더.

 - 스프링은 IOC라는 컨테이너안에 필요한 객체(bean)들을 명시한 후, 필요할 때 마다 IOC에서 객체를 빼와서 사용.

 - applicationContext.xml : IOC 컨테이너 역할을 수행하며, bean id에 원하는 객체를 명시하여 사용한다. schema를 정의하는 부분(beans xmlns= ~)은 거의 동일하며 bean id ~ 부분만 수정하여 사용함.

 

1) 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="lec03Pjt001.TransportationWalk" />
			
</beans>

 - bean id ~을 통해 id, 패키지, 클래스를 명시해주면, new를 통해 객체를 생성하지 않아도(기존 Java프로젝트 방식) applicationContext.xml 파일을 통해 객체가 생성됨(메모리에 로딩됨)

<bean id="tWalk" class="lec03Pjt001.TransportationWalk" /> <!-- 현재 패키지명 + 클래스의 풀 네임 -->

 

3. 스프링을 이용한 개발 예시

 - 기존에는 Class를 만들고 인스턴스를 사용하기 위해 new라는 키워드를 이용하여 생성자를 호출함. (메모리에 동적로드) -> 이후, 인스턴트를 이용하여 메서드나, 변수에 접근

 - 스프링에서는 더 효율적으로 객체를 사용하기 위해 xml파일(컨테이너)안에 빈을 생성하여 객체에 접근함.

 

1) xml파일을 통해 MainClass 실행

 - GenericXmlApplicationContext 객체를 생성. 생성시에 파라미터로 리소스의 내용 명시 

  -> classpath:applicationContext.xml : 컨테이너 생성완료 (1. 컨테이너를 가져옴)

 

TranspotationWalk transpotationWalk = ctx.getBean(~) : (2. 생성한 컨테이너에서 변수에 빈을 담아서 객체를 사용)

package lec03Pjt001;

import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {
	
	public static void main(String[] args) {
		
                //기존에는 new로 객체를 사용
		
//	TransportationWalk transpotationWalk = new TransportationWalk();
//	transpotationWalk.move();  
		
		// 스프링 컨테이너에 접근
		
     GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationContext.xml"); 
        //컨테이너에 접근하기 위한 data type, 컨테이너를 가져옴
		
     TransportationWalk transportationWalk = ctx.getBean("tWalk", TransportationWalk.class);
        // 컨테이너에 있는 bean을 가져옴 ID와 data type 입력.
     transportationWalk.move();
		
     ctx.close(); //java에서는 외부 리소스 사용 후 반환을 해야함.
		
		
				
		 
		
	}

}

 

2) 코드 종합 및 실행결과

  -일반 실행과 다르게, 객체를 생성하는 로그가 추가되어 결과 앞뒤로 빨간색 메세지가 보임

 

 

즉, 스프링 프레임워크에서는 Java 코드만으로 객체를 이용하지 않고, 리소스를 이용하여 사용한다.

그 과정은 1. resourse파일에 xml파일 생성 후 bean객체 명시 2. main파일에서 사용으로 이루어진다.

 

 

- 더 알아보기

 스프링 방식으로 객체를 사용하는 것도 번거로운데 왜 이렇게 사용하는지.

 

 

* 이클립스 괜찮은 폰트 설정

 나눔고딕코딩(네이버) 다운로드 -> 이클립스 window창 -> Preferences -> General -> Appearance -> Colors and Font -> Java -> Java Editor Text Font -> 원하는 글꼴 선택 -> 적용 

 

* 주석 전체 설정 및 제거 단축키

 - 전체 / 주석 : Ctrl + / 

 - 전체 /* 주석 : Ctrl + Shift + /

 - 주석 풀기 : Ctrl + Shift + \(역슬레시)

'Spring > 인프런 - Spring' 카테고리의 다른 글

4. DI(Dependency Injection)  (0) 2020.03.19
2. 스프링 프로젝트 생성 (Spring)  (0) 2020.03.08
1. 스프링 개요  (0) 2020.03.03
댓글