03. 메이븐을 이용한 프로젝트 구성
https://gcamp.tistory.com/와 https://www.youtube.com/channel/UC3vDpu3GvKADVUDPkGYiCxA
을 통해서 학습했으며, 아래 자료는 위의 자료로부터 가져온 것임을 밝힙니다.
이전 시간에는 기존 자바 코드로 스프링의 스프링 컨테이너(IoC)의 개념에 대해서 이해했었다.
스프링 프로젝트를 보다 손쉽게 개발하기 위해서 다양한 빌드 툴들이 있는데, 대표적으로 maven과 gradle이라고 한다.
이번 시간에 maven을 이용해서 프로젝트를 구성하는 방법을 학습했다.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spp</groupId>
<artifactId>p03001</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.8.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>
</project>
maven 프로젝트를 만들면 pom.xml라는 파일이 만들어진다. 환경 설정을 할 때 사용하는 파일이라고 한다. 이 파일로 스프링 프레임워크를 사용하겠다고 설정하고, 컴파일러도 잡아주었다. (외우는 건 힘드니 이전 프로젝트에서 불러오는 식으로 하라고 하신다.)
MainClass.java
package p03001;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
KoreaFood koreaFood = new KoreaFood();
ChianFood chianFood = new ChianFood();
GlobalFood globalFood = new GlobalFood();
globalFood.makeFood(koreaFood); // korea food
globalFood.makeFood(chianFood); // china food
*/
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationContext.xml");
GlobalFood food = ctx.getBean("gFood", GlobalFood.class);
food.makeFood(ctx.getBean("kFood", KoreaFood.class));
food.makeFood(ctx.getBean("cFood", ChianFood.class));
ctx.close();
}
}
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="kFood" class="p03001.KoreaFood"/>
<bean id="cFood" class="p03001.ChianFood"/>
<bean id="gFood" class="p03001.GlobalFood"/>
</beans>
2강에서는 자바만을 이용해서 객체를 생성하고 했었다. 하지만 이번에 메이븐과 스프링을 이용하게 되면 위와 같은 코드로 바꿀수 있다.
이전 시간에 스프링에서는 의존 객체와 의존 객체를 이용하는 객체들을 담아두고 있는 공간이 스프링 컨테이너(IoC)라고 학습했었다. applicationContext.xml은 스프링 컨테이너를 따로 빼 둔것이라고 한다. 이 파일에다가 사용할 빈(객체들)들을 작성해두면, 알아서 메모리에 객체가 담긴다고 한다.
그리고 이것을 MainClass.java에서 불러오기 위해서 GenericXmlApplicationContext를 사용하고, getBean을 이용해서 객체를 가져오기만 하면 된다고 한다.
이렇게 따로 빼두는 이유는 객체를 생성하고 조립하는 것은 매번 해야 하는 작업인데, 이러한 것들은 따로 빼두고 개발자는 기능 구현에만 초점을 맞추게 하기 위해서라고 한다.
github : https://github.com/ssjf409/spring
개발 환경 : eclipse 2019-12, Oracle, tomcat
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~