스프링 프로젝트 생성
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을 이용해서 프로젝트 실행 확인
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] Maven에 대해 알아보자 (0) | 2020.09.02 |
---|---|
[Spring] DB연결, Controller에 대해 알아보자 (0) | 2020.08.20 |
[Spring] Constructor Injection에 대해 알아보자 (0) | 2020.08.13 |
[Spring] DI (Dependency Injection)에 대해 알아보자 (0) | 2020.08.13 |
[Spring] IoC에 대해 알아보자 (0) | 2020.08.11 |