Java/Spring

Spring MVC 기본 설정 01 - 기본적인 pom.xml dependency 목록

팡스 2018. 12. 19. 12:35

이번 글에서는 Spring MVC 프로젝트를 생성할 때 사용되는 dependency들의 목록들을 나열할 예정이다.


이 글은 추가적으로 계속 업데이트를 하면서 초기 프로젝트 셋팅을 할때 시간을 단축 시기 위해서 작성하는 글이다.


아래 나열한 dependency들을 추가할 예정이다.



  • 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이다.


추가적인 dependency는  https://mvnrepository.com/ 경로에서 검색을 해보면 메이븐 프로젝트에서 추가해야할 dependency형식을 확인할 수 있다.


pom.xml 소스

위에 나열한 대로 작성한 pom.xml dependency이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<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>
 
cs