Maven Configuration(pom.xml)
자신의 프로젝트에 대한 고유의 좌표 설정
groupId
- 자신의 프로젝트를 고유하게 식별하게 해주는 것으로, 최소한 내가 컨트롤하는 domatin name이어야한다.
- package 명명 규칙을 따른다.
- 하위 그룹은 얼마든지 추가할 수 있다.
artifactId
- 제품의 이름으로, 버전 정보를 생략한 jar 파일의 이름이다.
- 프로젝트 이름과 동일하게 설정한다.
- 소문자로만 작성하며 특수문자는 사용하지 않는다.
Version
- SNAPSHOT: 개발용, RELSEASE : 배포용
- 숫자와 점을 사용하여 버전 형태를 표현한다.(1.0, 1.1, 1.1..)
Maven 장점
- pom.xml에 명시한 lib 자동으로 다운
- build process 자동화
- compile->test->package(.war)->install->deploy
Web Deployment Descriptor(web.xml)
- 개념
- web application의 설정을 위한 deployment descriptor
- SUN에서 정해놓은 규칙에 맞게 작성해야 하며 모든 WAS에 대하여 작성 방법이 동일하다.
- 역할
- Deploy 할 때 Servlet의 정보를 설정해준다.
- 브라우저가 Java Servlet에 접근하기 위해서는 WAS(ex. tomcat)에 필요한 정보를 알려줘야 해당하는 Servelet을 호출할 수 있다.
- 정보1) 배포할 Servlet이 무엇인지
- 정보2) 해당 Servlet이 어떤 URL에 매핑되는지
- 구체적인 설정 내용
- DispatcherServlet
- ContextLoaderListener
- Filter : encodingFilter, springSecurityFilterChain
- Dependency 목록
- Spring-webmvc
: Spring mvc 프로젝트를 하기위해선 추가해야할 기본적인 dependency이다. - spring-tx
: spring transaction을 사용하기위한 dependency이다. - spring-orm
: jpa를 사용하고자 할때 추가해야하는 dependency이다. - hibernate-core
: jpa를 사용하고 hibernate를 사용하고자 할때 추가하는 dependency이다. - hibernate-c3p0
: db connection pool로 c3p0를 사용하고자 할때 사용하는 dependency이다. - c3p0
: dpcp 라이브러리인 c3p0 dependency이다. - hibernare-validator
: entity에서 데이터의 유효성 검증을 하기 위한 dependency이다. -
javax.servlet.jsp.jstl-api
: front end 단에서 jstl을 사용하기 위한 dependency이다. -
standard
: taglib를 사용하기 위한 dependency이다. -
javax.servlet-api
: servlet dependency 이다. -
javax.servlet.jsp-api
: JSP dependency 이다. -
com.fasterxml.jackson.core
: Json converter 로 RESTful api를 작성할때 json데이터를 변환하고 결과를 json 데이터로 전송해주기 위해 필요한 dependency이다. -
mysql
: database로 mysql을 사용하기 위한 connector-J dependency 이다. -
jUnit
: 당장은 사용안하지만 후에 unit 테스트를 하기위한 dependency이다.
<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>com.pang</groupId>
<artifactId>pangs-spring-mvc</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<properties>
<springframework.version>5.0.6.RELEASE</springframework.version>
<hibernate.version>5.2.16.Final</hibernate.version>
<hibernate.validator>5.4.1.Final</hibernate.validator>
<c3po.version>0.9.5.2</c3po.version>
<jstl.version>1.2.1</jstl.version>
<tld.version>1.1.2</tld.version>
<servlets.version>3.1.0</servlets.version>
<jsp.version>2.3.1</jsp.version>
<mysql.connector.version>8.0.13</mysql.connector.version>
<jackson.databind.version>2.9.5</jackson.databind.version>
<junit.version>3.8.1</junit.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springframework.version}</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- C3PO -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3po.version}</version>
</dependency>
<!-- Hibernate Validator -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate.validator}</version>
</dependency>
<!-- JSTL Dependency -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>${tld.version}</version>
</dependency>
<!-- Servlet Dependency -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlets.version}</version>
<scope>provided</scope>
</dependency>
<!-- JSP Dependency -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>${jsp.version}</version>
<scope>provided</scope>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
<!-- Add Jackson for JSON converters -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.databind.version}</version>
</dependency>
<!-- junit Dependency -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<!-- Builds a Web Application Archive (WAR) file from the project output
and its dependencies. -->
<plugin>
<!-- Add Maven coordinates (GAV) for: maven-war-plugin -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
</plugin>
</plugins>
</build>
</project>
'Spring > [실습] Spring FrameWork' 카테고리의 다른 글
Spring MVC FrameWork - DispatcherServlet, HandlerMapping, HanddlerAdapter, ViewResolver 구현 (0) | 2021.03.03 |
---|---|
Spring FrameWork - 스프링 MVC 기본기 (0) | 2021.03.03 |
Spring FrameWork - 톰캣 설정 (0) | 2021.03.03 |
Spring FrameWork 개념 - MVC 설명 (0) | 2021.03.02 |
Spring FrameWork 개념 - 디렉토리 설명 (0) | 2021.03.02 |