프로그래밍/Spring

[Spring] 프로젝트 생성 방법에 대해 알아보자

byungmin 2020. 8. 18. 19:39

스프링 프로젝트 생성

SpringMVC 프로젝트를 생성하자. 

 

- 설치할 라이브러리

Lombok

Oracle

DBCP

MyBatis

Spring JDBC

HikariCP

 

1. Spring Legacy Project를 선택하고 Spring MVC Project 템플릿을 선택한다.

- 별도의 설정 없이 Maven을 사용하는 스프링 프로젝트를 생성할 수 있다.

 

2. pom.xml 설정

1) 자바 버전, 스프링프레임워크 버전, aspect 버전을 설정해준다.

(여기선 1.8, 5.0.7, 1.9.0을 사용)

<properties>
	<java-version>1.8</java-version>
	<org.springframework-version>5.0.7.RELEASE</org.springframework-version>
	<org.aspectj-version>1.9.0</org.aspectj-version>
	<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

밑으로 내려보면 <plugin> 태그가 있는데 그곳에 있는 <source><target>도 1.8로 바꿔준다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-Xlint:all</compilerArgument>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
    </configuration>
</plugin>

 

 

2) Servlet 버전 설정 (기존 버전은 주석처리 해놓고 3.1 버전을 사용)

<!-- Servlet version 3.1 modify -->

<!-- <dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
	<scope>provided</scope>
</dependency> -->

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>3.1.0</version>
</dependency>

 

3) Lombok 라이브러리 설치 (1.18.0 버전 사용)

<!-- Add My Module -->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.0</version>
	<scope>provided</scope>
</dependency>

 

4) 단위테스트 모듈 설치

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-test</artifactId>
	<version>${org.springframework-version}</version>
</dependency>

5) Oracle Driver 설치 (Maven 저장소에 ojdbc6.jar가 없기 때문에 로컬로 지정해주자)

<!-- Oracle Driver -->
<dependency>
	<groupId>com.oracle</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>11.2.0.3</version>
	<scope>system</scope>
	<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc6.jar</systemPath>
</dependency>

WEB-INF 폴더 밑에 lib 폴더를 만들고 그 안에 ojdbc6.jar 파일을 넣어주자

 

6) DBCP 라이브러리 설치

<!-- DBCP Module -->
<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-dbcp2</artifactId>
	<version>2.1.1</version>
</dependency>

 

7) MyBatis 라이브러리 설치

<!-- MyBatis Module -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.4.6</version>
</dependency>

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
	<version>1.3.2</version>	
</dependency>

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-ibatis</artifactId>
	<version>2.0.8</version>
</dependency>

각각 MyBatis, MyBatis-spring, ibatis 순으로 설치해줬다.

 

8) Spring JDBC 라이브러리 설치

<!-- Spring JDBC Module -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jdbc</artifactId>
	<version>${org.springframework-version}</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-tx</artifactId>
	<version>${org.springframework-version}</version>
</dependency>

 

9) HikariCP 라이브러리 설치

<!-- HikariCP -->
<dependency>
	<groupId>com.zaxxer</groupId>
	<artifactId>HikariCP</artifactId>
	<version>2.7.4</version>
</dependency>

 

10) ctrl + S 를 눌러서 저장하면 자동으로 라이브러리가 설치된다.

 

또한 프로젝트 우클릭 -> Maven -> UpdateProject를 클릭해서 메이븐을 업데이트 해준다.

 

 

 

3. C:\Users\사용자\.m2\repository 경로 확인

가보면 라이브러리 추가한 것들을 확인할 수 있다.

 

4. web.xml 확인

web.xml에 대해 알아보자

 

1) root-context.xml

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

공유할 수 있는 빈들을 넣어준다. 이곳에 빈으로 설정해두면 어디서든지 사용가능

 

2) DispatcherServlet

<servlet>
	<servlet-name>appServlet</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>

FrontController 역할을 한다.

 

3) servlet-context.xml

<init-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>

command.properties 역할을 한다.

(name="/main" 이면 그에 해당하는 class를 실행 name: key값, class: value값과 같음)

<bean id="index" class="com.tis.memo.IndexController" name="/main" />

 

5. home.jsp가 실행되기 까지 일어나는 일

1) servlet-context.xml

<context:component-scan base-package="com.tis.mvc" />

base-package로 지정한 package의 경로를 스캔한다.

 

경로로 가보면 HomeController.java가 있다

 

2) HomeController.java의 return 값이 home이다.

이게 뷰 이름이 되는데,

servlet-context.xml에 있는 beans를 통해 접두어로 /WEB-INF/views/를 붙이고 접미사로 .jsp를 붙인다.

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<beans:property name="prefix" value="/WEB-INF/views/" />
	<beans:property name="suffix" value=".jsp" />
</beans:bean>

 

결국 WEB-INF/views/home.jsp를 찾아간다.

 

6. Tomcat을 이용해서 프로젝트 실행 확인

home.jsp 가 실행되었다.