[MAC M1] STS3 개발환경 셋팅 - 2

계리·2024년 2월 11일
0

프로젝트 생성 과정

프로젝트 생성 시 2가지 방법이 있다.

  1. File - New - Spring Legacy Project
  2. command + n - Spring - Spring Legacy Project

둘중 한가지 방법을 택하면 아래 이미지 처럼 나오는데 하단에 Spring MVC Project 선택하면 된다.


해당 창이 나오면 Yes를 누르면 된다.(아마 STS 설치 직 후 처음 생성 시 나오는 창인 것 같다.)


프로젝트 생성 시 패키지 명을 작성하면 된다. 작성 시 사용할 루트 패키지는 소문자로 작성하고 세 단계 이상 지정되어야 Finish 버튼이 활성화 된다. 그리고 보통 com.회사명.업무명 으로 작성이 되는 것으로 알고 있다. 작성란 위에 보면 예시가 있으니 예시를 참고해서 작성해도 된다.


프로젝트 생성 후

JSP파일 코드 오류 해결 방법 - 1

/src/main/webapp/WEB-INF/views/home.jsp 에서 오류 발생

결론부터 얘기하면 아래 코드를 넣으면 된다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>

아래 사진처럼 맨 위쪽에 위치한 곳에 넣어주면 된다.

처음에 JSP를 사용하기 위한 페이지 지시어로 있어야 하는 코드가 없어서 오류가 났었다.

JSP 페이지 지시어에 대한 설명은 바로 아래 두곳을 참고하면 될 것 같다.

JSP 페이지 지시어 참고 사이트


JSP파일 코드 오류 해결 방법 - 2

두 번째 방법은 jstl.jar 파일을 추가하는 방법인데 없는줄 추가하려다가 보니 이미 추가가 되어있어서 첫 번째 방법으로 해결을 했지만 기록을 해두기 위해 작성을 했다.

해당 빨간 라인에 커서를 올려보니 아래와 같은 오류 내용이 나왔다.

Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"

JSTL 라이브러리를 찾을 수 없다고 하는 내용이여서 JSTL 라이브러리 다운로드 링크에서 jar 파일 다운로드 받아서 추가하는 방법이 있다.

그런데 더 간단한 방법은 pom.xml에 dependency를 추가하면 된다.

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>taglibs</groupId>
			<artifactId>standard</artifactId>
			<version>1.1.2</version>
		</dependency>

JRE 버전 맞추기, 서버 라이브러리 등록하기

해당 프로젝트 우클릭 - Properties - Project Facets


자바 버전은 JDK 설치한 버전으로 변경해주고 우측에 Runtimes에서 처음에 설정한 톰캣 버전을 선택해주고 Apply and Close로 마치면 된다.


위에서 설정해주고 Package Explorer를 확인하면 JRE 버전과 Server Runtime 버전 설정이 된 것을 확인 할 수 있다.


log4j.xml 수정

  1. 파일 경로 : /src/main/resources/log4j2.xml

  2. 기본 설정되어 있는 코드는 삭제하거나 주석처리를 한다.(나는 혹시 몰라서 주석처리를 했다.)

  3. 해당 소스를 작성한다.

    	<!-- Appenders -->
    		<Appenders>
    			<console name="console" target="SYSTEM_OUT">
    				<patternLayout pattern="%-p: %c - %m%n" />
    			</console>
    		</Appenders>
    	
    	
    		<!-- Loggers  -->
    		<Loggers>
    			<Logger name="org.springframework" level="DEBUG" additivity="false">
    				<AppenderRef ref="console" />
    			</Logger>
    		</Loggers>
  4. log4j.xml 파일 명을 log4j2.xml로 변경하라고 채규태님의 SPRING QUICK START 책에 나와있지만 나는 변경하지 않았다.(실습해본 결과 변경 안해도 이상없이 실습진행이 됐었다.)


web.xml 수정

/src/main/webapp/WEB-INF/web.xml 파일에서 루트 엘리먼트를 제외한 나머지 설정은 삭제하거나 주석처리를 한다.(나는 여기도 주석처리를 했다.)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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 https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<!-- 	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml</param-value>
	</context-param> -->
	
	<!-- Creates the Spring Container shared by all Servlets and Filters -->
<!-- 	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener> -->

	<!-- Processes application requests -->
<!-- 	<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>
		
	<servlet-mapping>
		<servlet-name>appServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping> -->

</web-app>

pom.xml 수정

  • JAVA 버전을 1.6에서 11로 수정
  • <org.springframework-version>3.1.1.RELEASE</org.springframework-version> 으로 설정되어 있는데 5.3.9로 변경
  • log4j 의존성 설정을 주석으로 처리하고log4j-core로 수정
  • H2 데이터베이스 의존성 추가

		<!-- H2 데이터베이스  -->
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>2.2.224</version>
		</dependency>

바로 위에서 스프링 프레임워크 릴리즈 버전 5.3.9로 맞춘 결과 스프링 라이브러리 버전들이 변경된 것을 확인 할 수 있다.

이제 필요한 설정들은 마무리가 됐다. 인텔리제이로 스프링부트를 사용했을 때는 필요한 dependency 코드 한줄이면 됐고 톰캣도 내장되어 있어서 톰캣 설정도 할 필요 없었고 개발자들이 엄청 간편하게 설정하고 나서 바로 코드 작성을 했던걸로 기억하는데 STS로 스프링을 하기 위해 설정들을 진행해보니 설정만 하다가 시간이 다 지나갔다. 진짜 자바 스프링을 하기 위해 설정 하다가 포기한다는 말이 왜 나오는지 몸소 느꼈고 STS + 스프링과 인텔리제이 + 스프링부트 설정적인 면을 비교했을 때 확실히 인텔리제이 + 스프링부트가 너무 편리하다는 것을 느꼈다.


참고

profile
gyery

0개의 댓글