본문 바로가기

Web[웹]/Spring Framework

[Spring] 따라해보는 스프링 프로젝트 생성

 

 

이클립스를 통한 메이븐 프로젝트 생성

 

spring 프로젝트를 생성하는 여러 방법이 있는데, 그중 이클립스를 통하여 생성해 볼 것이다.

 

먼저, Maven이 무엇인지 알아보자. Maven은 자바 프로젝트의 빌드를 자동화해주는 빌드 툴로, 자바 소스를 컴파일하고 패키지 해서 배포하는 일을 자동화해주는 것이다. 이어서 Maven이 참조하는 설정 파일을 보자. 

 

1) settings.xml

maven tool 자체에 관련된 설정을 담당한다.

 

2) pom.xml

POM(Project Object Model)을 설정하는 부분으로 프로젝트 내 빌드 옵션을 설정하는 부분이다. pom.xml 파일은 <Project>...</Project>로 둘러싸여 section별로 여러 정보를 나타내며 설정할 수 있다. 

 

(pom.xml파일 태그)

정리하자면, pom.xml 파일은 메이븐 설정파일로 메이븐은 라이브러리를 연결해주고, 빌드를 위한 플랫폼이다. 즉, 외부에 메인 repository에 있는 라이브러리를 내가 개발 중인 프로젝트에 쉽게 다운로드하여 사용을 할 수 있게 해주는 파일이다.

 

 

이제 이 메이븐을 통해서 스프링 프로젝트를 생성해보자. 이클립스를 실행한 후 "New - Other - Maven Project" 를 눌러 생성 절차를 밟자.

 

 

 

이후 생성하고 나면, "Create a simple project"를 체크해주고, 다음 창에서 Artifact 항목에 'Group Id'에는 스프링 버전을 적어주고, 'Artifact ID'에는 해당하는 프로젝트 명을 적어주면 된다.

 

 

 

위 과정을 통해 프로젝트를 생성했으면, 'pom.xml'파일을 열어 다음 코드 구문을 <Project> 사이에 추가해주자.

 

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
	<version>4.1.0.RELEASE</version>
  </dependency>
</dependencies>
  
<build>
  <plugins>
    <plugin>
	  <artifactId>maven-compiler-plugin</artifactId>
	  <version>3.1</version>
	  <configuration>
	    <source>1.8</source>
	    <target>1.8</target>
	    <encoding>utf-8</encoding>
	  </configuration>
	</plugin>
  </plugins>
</build>

 

위 코드 구문을 추가해보면, 프로젝트의 JRE라이브러리 버전이 메이븐 설정 파일에 명시되어 있는 버전과 일치하지 않는 이유로 에러가 발생한다. 메이븐 프로젝트 업데이트 과정을 통해 이를 해결해 주자.

 

 

이제 기존에 프로젝트를 생성하면서 자동 생성된 파일들을 보자.

 

src/main/java [ java파일 관리]

: 앞으로 만들어지는 자바 파일들이 관리되는 폴더

 

src/main/resources [자원파일 관리]

: 자원을 관리하는 폴더로 스프링 설정 파일(XML) 또는 프로퍼티 파일 등이 관리

 

 

 

 

 

 

 

 

 

 

 

 

 


스프링 프로젝트만들기 따라하기

 

먼저, java파일을 이용해서 실행해볼 것이다. TransportationWalk.java 파일과 MainClass.java 파일을 만들자.

 

 

/* MainClass.java */
package testPjt;

public class MainClass {
  public static void main (String[] args){
    TransportationWalk tw = new TransportationWalk();
      tw.move();
  }
}
/* TransportationWalk.java */
package testPjt;

public class TransportationWalk {
  public void move() {
    System.out.println ("도보로 이동합니다.");
  }
}

 

 

위 코드를 실행해보면, "도보로 이동합니다."라고 콘솔에 정상적으로 출력될 것이다. 스프링 방식의 ‘의존 ’을 이용하기 위해서는 Main에서 TransportationWalk 객체를 직접 생성하지 않고 , 스프링 설정 파일(XML)을 이용해 보기로 한다. 가장 큰 차이점은 Java파일에서 이용한  new연산자를 이용하지 않고 스프링 설정 파일 (XML)을 이용하는 것이다. applicationContext.xml 파일을 만들자.

 

<!-- 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 ="testPjt.TransportationWalk"/>
	                         <!--패키지명.클래스명-->
</beans>

 

 

 

 

이렇게 생성된 스프링 설정 파일로 이제 객체 직접 생성이 아닌, 스프링 설정 파일을 통해 실행해보자. 기존의 MainClass.java 파일을 다음과 같이 수정해주면 된다.

 

/* MainClass.java */
package testPjt;

import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {
	public static void main (String[] args){
		//TransportationWalk tw = new TransportationWalk();
		//tw.move();
		
		/* 컨테이너에 접근하기 위한 데이터 타입 */
		GenericXmlApplicationContext ctx =                        /*파일이름*/
				new GenericXmlApplicationContext("classpath:applicationContext.xml");

		                              /* getBean: 컨테이너에 있는 Bean을 가져옴 */
		TransportationWalk transportationWalk = ctx.getBean("tWalk", 
							TransportationWalk.class);
			transportationWalk.move();
			
			/* 외부 리소스 사용 후 반환 */
			ctx.close();
	}
}

 

정리하자면, 스프링 프레임워크에서는 객체를 생성할 때 new키워드를 사용하기보다는 xml파일로 컨테이너 역할을 해주는 파일을 만들어놓고 GenericXmlApplicationContext라는 클래스를 이용해서 컨테이너를 생성해놓고, 그 안에 있는 Bean라는 객체를 getBean 메서드를 통해 사용을 한다. 이 이후부터 생성은 컨테이너가 알아서 한다.