[IntelliJ]_Spring 개발환경 설정 (feat.Tomcat)

2021. 11. 30. 17:41[프론트엔드]_/[Javascript]_ES6

728x90
반응형

이전에 두었던 Tomcat 으로만 구현된 웹서버 개발환경에는 큰 문제가 있었다.

이렇게 두고 톰켓을 이용한 서버는. 단순한 구조일 뿐 더러.

지금 직장에서 사용하는 환경과는 동 떨어져 있기 때문이다.

그래서 분석해본 결과. spring을 뼈대로 나누고 MVC처럼 동작하는것 처럼 만들었다. 그래서 spring 연동을 해볼 예정이다.

 

1. 프로젝트 만들기

new- > project 에 들어간 다음.

이름과 location 지정 후 순서대로

 

java : 자바기반 언어로 만들것이기 때문에 선택

Maven : 프로젝트 타입

group : 프로젝트 저장소와 관련된 Artifact 그룹

artifact

    사용하는 maven project에서 빌드 결과물로 나오는 개체를 artifact라고 한다.
    프로젝트 -> 빌드 -> jar 파일(artifact)
    java 외에도 기타 다른 산출물을 artifact라고 한다.

sdk version : 설치한 버전

packaging : jar -> 스프링에 있는 tomcat 서버, War -> 내부 tomcat외의 서버 사용시

 

그 다음 Next 클릭

web을 사용할 것이기 때문에 선택후 Finish 클릭

그럼 다음과 같은 directory가 생성되고 프로젝트가 만들어진다.

여기에서 위의 file -> Project Structure 클릭

그뒤 아래의 화면에서 facets 란 선택

그뒤 + 버튼 클릭한다.

이런 창이 나오면 ok 클릭

그뒤 모듈로 돌아가서 web이 추가된 것을 확인 할 수 있다. web을 클릭한다.

그 뒤 오른쪽에 Deployment Descriptors 에 편집 아이콘 클릭후

위의 경로를 해당 디렉토리이름\src\main\webapp\WEB-INF\web.xml 으로 변경한다.

아래 Resource Directories도 해당 디렉토리 이름\src\main\webapp 으로 변경한다.

그리고 apply 클릭한다.

 

그럼 아래와 같은 디렉토리가 생긴다.

지금 생긴 web.xml을 참조하여 스프링은 웹을 실행한다고 볼 수 있다.
서버쪽 환경 설정을 지정하는 파일들과
사용자 화면과 관련된 부분에 대한 설정을 하는 스프링 설정 파일들에 대한 정보를 담고 있다.
또한 기본적인 URL 형식에 대한 설정도 이 파일에서 할 수 있다.

다음과 같이 편집한다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/*Context.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

<param-name>contextConfigLocation</param-name>

에서 스프링 설정 파일 경로를 명시해 줍니다.

<param-value>classpath:spring/*Context.xml</param-value>

 

위의 코드에서는 value 가 가리키는 classpath는 기본적으로 src->main->resources 를 가리키게 됩니다. 해당 디렉토리의 spring이라는 폴더 안의 Context.xml로 끝나는 모든 파일을 참조하겠다는 뜻입니다.

지금 spring이란 폴더가 없으니 만들어 줍니다.

이렇게 만들어 준 다음에 해당 폴더에 new>spring Config 파일을 생성합니다.

 이름은 Context로 끝나는 xml 파일 아무거나 생성합니다. 코드는 넣지 않아도 됩니다.

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

web.xml에서 해당 servlet 쪽 코드입니다. 

위와 마찬가지로 WEB_INF 안에 spring 파일을 만듭니다. 단 여기에서는 classpath가 아닌 dispatcher servlet부분이라 webapp 아래에 WEB_INF 안에 만듭니다. 그리고 위에 했던 spring Config 파일 형식으로 servlet-context 파일을 만듭니다. 이름은 코드부분을 변경한다면 변경해도 좋습니다.

 

그리고 나서 새로만든 servlet-context 파일을 다음과 같이 변경합니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
    <mvc:annotation-driven/>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
        <property name="order" value="1"/>
    </bean> <context:component-scan base-package="com.example.springintellij"/>

</beans>

마지막 base-pakage 쪽 은 생성한 루트대로 만듭니다.

 

스프링은 MVC 형식을 지원합니다. 테스트를 위한 controller와 파일을 만듭니다.

그림과 같은 위치에 java클래스 파일을 만듭니다.

코드는 다음과 같습니다.

 

package com.example.springintellij;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class Testcontroller {
    @GetMapping("/") public String test(Model model){
        return "test/index";
    }
}

위의 test 함수는 단지 string의 주소만 반환합니다.

이 반환된 string 값의 주소가 화면이 떴을 때 보여줄 jsp의 위치가 됩니다.

위의 servlet.context.xml 의 파일을 다시 보면

prefix와 suffix가 보입니다.

<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>

prefix는 url에 localhost:8000이후에 쳐야하는 주속

suffix는 그뒤 파일의 확장자 명을 말합니다.

이렇게 지정을 하게 되면 WEB-INF\views\ 를 쳐야하는 주소를 단순히 8000포트 번호만 호출해도 의도한 페이지가 로딩됩니다.

prefix 에서 지정한 views를 해당 위치에 만들고

controller가 보내주는 test/index.jsp 파일을 만듭니다.

소스는 다음과 같습니다.

<%@ page contentType="text/html; charset=UTF-8" language="java"%>
<div class = "content-wrap">
    <div class ="page-contents page-contents-mobile-manual">
        <div class="page-head">
            <div class="page-head_left">
                <h2 class="page-head__title">test</h2>
            </div>

        </div>
    </div>

</div>
<script type="javascript">

</script>

이제 서버에 띄웁니다.

초반에 war로 외부 tomcat을 이용하려고 하였기 때문에 Tomcat에 연결합니다.

tomcat 설치와 기본 설정은 다음 글 참조하시면 되겠습니다.

https://yn971106.tistory.com/11

 

[초보개발자]_IntelliJ 설치와 Tomcat 서버 연동

1. IntelliJ 공식 홈페이지에서 다운로드를 받는다. https://www.jetbrains.com/ko-kr/idea/download/#section=windows 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com..

yn971106.tistory.com

 

다른점은 다음과 같습니다.

Deployment에서 + 누른 뒤 Artifact 클릭

war exploded 선택

Application context / 로 변경

기본 java 파일 삭제

화면이 정상적으로 출력됩니다.

 

이제 환경설정이 끝났으니 API 연동부터 json 까지 해보려고 합니다.

감사합니다.

 

 

참고 블로그 : https://freehoon.tistory.com/147

 

[java/spring] IntelliJ 에서 스프링 개발하기 1. 개발환경 설정

이 포스팅은 java/spring 스터디에서 IntelliJ로 개발하면서 진행했던 내용을 정리한 것입니다. 1. 프로젝트 생성하기 인텔리제이를 실행하면 가장 먼저 아래의 화면과 마주하게 됩니다. 'Create New Proje

freehoon.tistory.com

 

728x90
반응형