티스토리 뷰

Spring

[Spring] Spring 개발환경 설정

망나니개발자 2017. 11. 4. 00:35

이번에는 프로젝트 진행을 위해 필수적인 pom.xml 설정, web.xml 설정 등을 해보려고 합니다.

저도 하면서 착오를 많이 겪었기에 여러분들은 문제가 없도록 최대한 상세히 작성해보도록 하겠습니다.


1. Pom.xml 설정하기



앞에서 얘기하였듯, Maven 프레임워크의 최대 장점중 하나는 라이브러리의 관리였습니다.

그렇기에 우리가 Spring이나 MySql과 같은 라이브러리를 네트워크를 통해 다운받기 위해서는 Pom.xml에 관련 라이브러리를 추가해주어야합니다. 여기서는 이 작업을 해보도록 하겠습니다.

먼저 소스코드를 보여드리고 아래에서 설명드리도록  하겠습니다.


[ 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/maven-v4_0_0.xsd">
   4.0.0
   com.ndc.maven
   study
   war
   0.0.1-SNAPSHOT
   study Maven Webapp
   http://maven.apache.org
  
   	
	  	UTF-8
	    1.8
	    4.0.9.RELEASE
	

  
		    
        
            org.springframework
            spring-core
            ${spring.version}
        
         
        
            org.springframework
            spring-web
            ${spring.version}
        
  
        
            org.springframework
            spring-webmvc
            ${spring.version}
             
  
    
      junit
      junit
      3.8.1
      test
    
  
  
    study
    
		
			org.apache.maven.plugins
	    	maven-compiler-plugin
			
				1.8
				1.8
				true
				C:\Program Files\Java\jdk1.8.0_111\bin\javac
			
	    	3.1
		
			
		
			org.apache.maven.plugins
			maven-resources-plugin
			3.0.2
			
			UTF-8
			
		

		    
  




[Properties]

기존의 pom.xml에 추가한 내용을 하나하나 살펴보도록 하겠습니다.

먼저 url 아래에 아래와 같은 properties 들을 추가해준 것을 확인할 수 있습니다.

여기서 정한 값들은 마치 변수를 선언한 것과 같아서 아래에 dependency에 추가를 용이하게 해줍니다.





[Dependency]

위에서 정의한 property들을 이용하여 dependency를 추가해주는데, 위에 property에 정의하지 않고

직접 상수를 입력하여 사용도 가능합니다.  여기서 보면 Properties에 선언한 속성들을 갖다 쓰는 것을 볼 수 있는데, ${spring.version}을 사용하여 4.0.9.REALEASE를 넣어주고 있습니다.

나중에 MySqlConnector나 MyBatis 같은 라이브러리를 추가할 때도 이렇게 해주면 됩니다!



[Plugin]

이제 거의 마무리가 되었는데, 마지막으로 <build>안에 추가해준 이 부분은 JRE System Library를 jdk1.8로

이용하기 위해서 추가해준 부분입니다!




[ 마무리 ]

이 과정을 마무리 해도 에러가 남아있을 텐데 왼쪽의 Package Explorer에서 해당 프로젝트를 선택하고 
alt+f5를 눌러주면 됩니다. 만약 alt+f5가 안먹으면 프로젝트를 우클릭한 후 maven 탭에서 update project를 해주면 됩니다.
이 과정은 내가 추가한 사항을 프로젝트에 반영하는 maven update project 입니다



2. web.xml



이번에는 제가 쓸데없이 가장 고생을 많이했던 web.xml 입니다. 적혀있는 내용을 모른 채로 다른 분들의 코드를 여기저기서 옮겨 붙이다보니 자연스레 파일들 사이의 충돌이 발생하게 되었고 고생도 많이 했기에 몇가지 알아보고 설명해드리고자 합니다.

이번에도 역시 소스코드를 먼저 보여 드리고 몇가지 설명해 드리도록 하겠습니다.

 < web-app version="3.0" 
		xmlns="http://java.sun.com/xml/ns/javaee" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    Archetype Created Web Application
  
    
        dispatcher
        
            org.springframework.web.servlet.DispatcherServlet
        
        1
    
  
    
        dispatcher
        /
    
  
    
        contextConfigLocation
        /WEB-INF/dispatcher-servlet.xml
    
  
    
        
            org.springframework.web.context.ContextLoaderListener
        
    


가장 먼저 제일 위에 보이는 web-app version = 3.0 부터 설명드리겠습니다.

이 web-app의 version은 서블릿 버전을 타나내는데, 서블릿이라고 하는 것은 여기에서 자세히 다루도록 하겠습니다.

제가 여기서 문제를 일으켰던 이유는 바로 다음과 같습니다. 이제 아시다싶이 저는 servlet 3.0 버전을 사용하겠다고 

명시를 해두었습니다. 그런데, 이클립스에서 maven project를 생성하면 2.3버전이 정의가 됩니다. 

그래서 서로 버전이 맞지 않기 때문에 프로젝트의 버전을 수정해주어야 합니다. 

(servlet 3.0이상을 이용하면 최근에 자주 사용하는 Annotation어노테이션을 이용한 서블릿 매핑이 가능해집니다! )


그 외에 xmlns와 같은 아래 내용은 서블릿의 DTD[각주:1] 인데, 사용하려는 서블릿 버전에 맞추어 수정해주면 됩니다.

(혹시 3.1 외에 다른 서블릿 버전을 사용하길 원하신다면 여기에서 보고 맞춰 수정해주세요!)



3. 기타 설정



그 다음에 View 탭에서 Servers를 더블클릭하고 사용중인 tomcat을 더블클릭한 후 Modules 탭으로 이동합니다.

만약 Servers가 없는 경우 화면 상단의 Windows -> show view에서 Servers를 추가해주시면 됩니다!

Path를 /로 바꾸는 것은 시작하는 화면의 주소를 http://localhost:8080/ 처럼 바꾸기 위해서입니다.



그리고 실행을 해봐서 아래와 같은 화면이 잘 뜨면 설정을 잘 마무리 하신겁니다!

위에서 path를 /로 바꾸었기 때문에 아래의 주소가 http://localhost:8080/  로 나오게 된 것입니다.




4. 에러가 발생한 경우



톰캣을 사용하면서 가장 자주 발생하는 에러인 404에러가 발생했다면 몇가지 확인해볼 사항이 있습니다.

먼저 프로젝트를 우클릭하여 properties에 들어간 후 아래와 같이 project facets으로 들어가봅시다.


오잉? 근데 이상한 부분이 있습니다. 우리는 프로젝트를 만들때 3.0 웹 앱 버전을 사용하겠다고 했는데 실제로 들어가보니

2.3 버전으로 형성되어 있는 것을 알 수 있습니다. 이러한 문제가 발생하는 이유는 이클립스에서 메이븐 프로젝트를 생성하면 기본적으로 2.3버전이 만들어지기 때문입니다. 그러므로 workspace로 가서 프로젝트가 있는 폴더의 .settings로 가줍니다. 폴더 안에는  org.eclipse.wst.common.project.facet.core파일이 있는데 이를 메모장으로 열고 jst.web의 version을 3.0으로 바꾸어 주면 정상적으로 실행되는 것을 확인할 수 있습니다!









관련 포스팅

  1. Maven 기반의 Spring 프로젝트 만들기 (1/5)

  2. Spring 개발환경 설정하기 (2/5)

  3. Dispatcher Servlet 설정하기 (3/5)

  4. MyBatis, Datasource 설정 (4/5)

  5. DB에서 데이터 조회하기 (5/5)


  1. Document Type Definition [본문으로]
댓글
댓글쓰기 폼
  • 개발자의꿈 알기 좋게 정리 해놓으셨습니다.
    복습에 도움이 엄청 많이 되었습니다.
    자주 보러 오겠습니다. ㅎㅎ
    2018.10.12 15:34
  • 망나니개발자 도움이 많이 되셨다니 다행입니다! 자주 놀러오세요~! 2018.10.12 16:15 신고
  • 초급            <groupid>org.springframework</groupid>
               <artifactid>spring-core</artifactid>
    위 코드 id 를 Id 로 하지 않으면 에러가 발생하네요 .. ㅠㅠ

    <configuration>
    <source>1.8
    <target>1.8</target>

    요 부분 source 태그가 닫히지 않았습니다.

    개발자님 게시글 보고 실습하면서 메이븐에 대해서 배운 것 같습니다. 감사드립니다 ^^
    즐겨찾기해놨어용
    2019.01.19 13:17
  • 망나니개발자 앗 정말로 source 태그가 닫히지 않았네요! 지적 잠사합니다ㅎㅎ 앞으로도 자주 봐주세요~! 2019.01.19 17:31 신고
공지사항
Total
1,039,925
Today
2,430
Yesterday
3,788
TAG
more
«   2021/05   »
            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          
글 보관함