ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [이클립스 스프링] Spring MVC Project 생성과 실행 초기 설정(path, tomcat, pom.xml, log4j2)
    Back-End/Spring Legacy 2022. 8. 10. 16:50

     

    개발 환경

     

    코드로 배우는 스프링 웹 프로젝트 (개정판) 책을 시작하려면, 이 책뿐만 아니라 스프링 웹 프로젝트를 실행하려면 스프링 개발 환경 구축부터 시작해야한다.

     

     

    일단 워니's의 환경은 이렇게 맞춰져 있다. 

    - jdk 11.0.14
    - Eclipse IDE for Enterprise Java and Web Developers - 2021-09
    - Tomcat 9
    - STS3 (3.9.14

     

     

     

    롬북을 사용해서 getter/setter/toString 등 주요 메서드, 생성자 등을 자동으로 생성해주기 때문에 다운 받아 사용할 것이다. 아래 Lombok 설치 방법을 따로 포스팅해두었다.

     

     

    https://wonisdaily.tistory.com/2

     

    [Lombok] 이클립스(Eclipse)에 롬북 라이브러리 설치하기

    롬북을 사용하면? 이클립스와 스프링 플러그인 만으로 스프링 개발은 가능하지만, Lombok을 이용하면 Java 개발 시 자주 사용하는 getter/setter, toString(), 생성자 등을 자동으로 생성해주므로 약간의

    wonisdaily.tistory.com

     

     

     

    1. Spring Legacy Project 생성

     

    그럼 본격적으로 웹 프로젝트를 생성해보도록 하자.

     

     

     

    File -> New에서 Spring Legacy Project가 보이지 않는다면 맨 밑에 other에 들어가서 검색해보자. 

     

     

     

     

    project name은 web 프로젝트 예제이므로 wex00 이런식으로 작성했다.

    templates에서 Spring MVC Project를 클릭 후 next를 누른다. package 이름을 설정할 수 있는 창이 나오는데 나는 책 내용 그대로 org.zerock.controller라고 설정 후 finish를 눌렀다. 

     

     

    Spring MVC Project 생성 완료!

     

     

     

     

     

    2. 스프링 / Java 버전 변경

     

    프로젝트를 생성하면 기본으로 스프링 버전은 3.1.1 , JDK는 1.6버전으로 지정된다.

    프레임워크의 경우 최신 버전이 항상 좋다고 할 수는 없지만, 예제에서는 5.3.0이상을 이용하기 위해서 스프링과 Java 버전 변경이 필요했다.

     

    최신 스프링 Maven 버전을 확인하고 싶다면 

     

    https://mvnrepository.com/artifact/org.springframework/spring-core

     

    위의 사이트에서 확인 가능하다. 검색창에 Spring Maven으로 검색해서 Maven Repository의 최신 버전을 확인!! 

     

     

     

     

     

    스프링 버전을 변경하기 위해서 pom.xml내에 <org.springframework-version> 항목을 수정하고 저장하면 자동으로 관련 라이브러리들이 변경되는 걸 확인할 수 있다.

     

     

     

     

     

    자바 버전을 변경하기 위해서 pom.xml 아래 쪽 <plugin> 항목 중에서 <source>와 <target>이 1.6으로 된 부분을 11로 변경하면 된다.

     

     

     

     

    그 후 프로젝트 우클릭 Maven -> Update Project 클릭하면 Libraries에 JRE 시스템 버전이 JavaSE-11로 바뀐다.

     

     

     

     

     

    만약 바뀌지 않고 그대로라면 수동으로 바꿔줄 수 있는데, 

     

     

    1. 프로젝트 우클릭 -> properties -> Project Facets 

    Java 버전을 11로 설정한다.

     

     

     

     

    2. JRE System Library 우클릭 -> properties -> Execution environment 변경 

     

     

     

    이렇게 두개 모두 JavaSE - 11 (jdk-16.0.2)로 설정 후 apply 클릭하면 에러 사라지는 걸 확인할 수 있다.! 

     

     

     

     

     

    3. Tomcat을 통한 프로젝트의 실행 확인 

     

    작성된 프로젝트가 정상적으로 동작하는지 확인 위해서 'Run As' >  'Run on Server'를 이용해서 프로젝트를 실행해본다. 

    만약 프로젝트에 톰켓이 연결되어 있지 않다면! 수동으로 연결해준다.

     

     

    1. 프로젝트 우클릭 > Build Path > Configure Build Path 클릭

     

     

     

     

     

    2. Add Library 클릭

     

     

     

     

     

    3. Server Runtime 클릭

     

     

     

    4. next 클릭하고 tomcat 9.0 클릭

     

     

     

    finish 누르면 완료!! 

     

     

     


     

    이제 진짜로 서버를 실행해보자.

     

     

     

    톰켓을 클릭해주고 next를 누른 후 

     

     

     

     

    해당 프로젝트를 add 후 finish하면 새로운 창에 웹페이지가 출력된다. 

    helllo world!라는 단어와 함께 주소를 살펴보면 처음 project 경로를 설정할 때 org.zerock.controller로 지정했기 때문에 /controller 라는 경로를 통해서 실행된다. 

     

     

     

     

    4. 실행 경로의 수정 

     

    프로젝트의 실행 경로가 '/controller'인 경우 나중에 다른 파일들의 경로에도 영향을 끼칠 수 있으므로 '/' 경로로 수정해두는 것이 편리하다. 실행중인 톰캣을 중지하고 servers 메뉴를 선택한다. 

     

     

     

    아래 서버의 tomcat을 더블클릭하면 Overview화면이 나온다. 좌측 아래 Modules를 클릭한다.

     

     

     

     

    edit을 누른 후 path명을 /로 변경해주면 완료! 

     

     

     

    5. log4j의 변경

     

    롬북설치까지 완료 했다면 log4j 라이브러리를 이용해야 하는데) 2021년 Log4j관련 보안 문제가 이슈화되면서 가능하다면 Log4j대신에 Log4j2를 이용하는 것을 권장하고 있다. 

     

    생성된 파일을 살펴보면 src/main/resources 하위 xml파일에 log4j.xml이 자동으로 생성되어 있는 걸 확인할 수 있다. 이파일을 삭제해주고 pom.xml에서도 Log4j와 관련된 태그들을 삭제한다.

     

     

     

     

     

    아래 태그들을 삭제해주면 되고 추가로 Log4j2관련 라이브러리들을 추가하면 된다.! 

     

     

    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.18.0</version>
    </dependency>
    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.18.0</version>
    </dependency>
    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.18.0</version>
    </dependency>

     

     

    pom.xml에 log4j2관련 라이브러리들을 추가해줬다면 다시 log4j2.xml 파일을 생성해주자. 

     

     

    <?xml version="1.0" encoding="UTF-8"?> <Configuration> <!-- Appender, Layout 설정 --> <Appenders> <Console name="console" target="SYSTEM_OUT"> <PatternLayout pattern=" %-5level %c(%M:%L) - %m%n"/> </Console> </Appenders> <!-- Logger 설정 --> <Loggers> <Root level="INFO"> <AppenderRef ref="console"/> </Root> <Logger name="org.zerock" level="INFO" additivity="false" > <AppenderRef ref="console"/> </Logger> <Logger name="org.springframework" level="DEBUG" additivity="false"> <AppenderRef ref="console"/> </Logger> </Loggers> </Configuration>

     

    파일에 추가될 내용이다. 

     

     

     

     

     

    추가까지 완료되었다면 확인을 위해서 기존의 HomeController를 변경해보자.

     

    Lombok을 이용해서 @Log4j2를 적용하고 기존에 static 변수로 선언된 logger 대신에 log라는 변수를 이용하도록 수정한다. 

     

     

     

     

     

    변경 후 프로젝트를 실행해보면 위의 사진과 같이 로그가 출력된 걸 확인할 수 있다. !! 

     

     

     

    실행화면

     

     

    반응형

    댓글

Designed by Tistory.