Spring(Intelli J 활용) - 프로젝트 생성부터 환경설정까지

songmin jeon·2024년 3월 11일
0

1. Intelli J 설정


1.1. 프로젝트 생성

메이븐 Archetype 사용안함

  • workspace 에 DB와 front-End 모두 들어갈 예정

  • D 드라이브에 경로 만들어주기

  • gradle 버전 6 과 8 버전의 차이가 있음으로 주의할 것 !

  • jdk 버전 17로 없다면 JDK 선택란에서 다운 받을 수 있다.
    (아마존 17버전으로)

생성 클릭

  • 실행되는 것을 알 수 있다.

주의 : build.gradle의 파일 확장자 명에 .kts가 없어야함


1.2. webapp 디렉토리 생성

  • 다이나믹 프로젝트와 같은 환경을 만드려면 웹 디렉토리를 만들어줘야함

  • webapp안에 WEB-INF 디렉토리 생성(위 방식대로)

    • WEB-INF안에 lib 디렉토리 생성 : .jar 파일을 인식하기 위한 경로(강제연결용)
  • web.xml : 웹의 배치 안내도 같은 개념. 보안상 WEB-INF의 내부에 생성해준다.

  • id 'java' => 'war' 로 변경

1.3. 톰켓 연결하기

  • 톰켓 파일을 복사해서 workspace에 붙여 넣기!

1.3.1. jdk 버전 맞추기

  • jdk 버전을 바꾸고 싶으면 해당 위치에서 변경가능
    (아마존 17인지 재확인)

      1. 가 동일한지 다르면 미스매치로 에러생김
  • 해당 위치도 동일한지 맞춰야함.


1.3.2. 플로그인으로 톰켓 등록

  • 세팅 > 플러그인 > 스마트톰켓 > 인스톨 > 엑세스

  • 세팅스 > 톰켓서버가 생김

  • 톰켓 서버 등록완료

1.3.3. 프로젝트와 톰켓 연결

  • 톰켓과 프로젝트 연결

  • 스마트 톰켓 추가하기
    • 오라클과 충돌날 가능성이 있음으로 server port를 8081로 변경하기 !

  • 주소 누르면 접속가능

1.3.4. 구동하여 웹페이지 열어보기

  • webapp 오른쪽 마우스 클릭 > new > html > index.html 파일 생성

1.4. 서블릿 생성

  • bulid.gradle 에서 서블릿 API추가
    • 메이븐 홈페이지 방문
    • servlet 검색

  • 컴파일 온리는 컴파일할때만 필요함

  • bulid.gradle의 내용에 복붙

디펜더시 > 코끼리 모양 클릭 (새로고침) > 추가확인

  • 패키지 오른쪽 마우스 > 새로만들기 > HelloServlet.java
    • extends HttpServlet를 추가.


1.5. MVC 패턴과 JSP

  • 클라이언트가 jsp로 바로 접근을 막기 위해(MVC패턴) WEB-INF 내 컨트롤러로 접근이 가능하게 해야함.

  • 단 테스트 단계임으로 webapp에 생성하려고 함.

  • webapp에 오른쪽 마우스 > new > 파일 > index.jsp 생성


index.jsp

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <%
        int sum = 0;
        for(int i = 1; i <= 10; i++){
            sum += i;
        }
    %>
    <%=sum%>
</body>
</html>


1.6 JSTL 기능추가

  • bulid.gradle의 내용에 복붙

// JSTL
implementation 'javax.servlet:jstl:1.2'


2. web.xml

2.0. 목적

@WebServlet("/hello")

  • 위 어노테이션 없이 web.xml을 통해 연결해줄 수도 있다.
    • HelloServelt의 @WebServlet("/hello") 주석처리
    • web.xml 생성하여 설정하기
    • 서버구동 > 실행확인 해보기!

2.1. web.xml 생성하기

  • WEB-INF 오른쪽 마우스 > new > file > web.xml 생성

  • 해당 내용 web.xml에 붙여넣기 하기

<?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_3_1.xsd" version="3.1">

    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>org.example.controller.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

</web-app>

3. DTO

  • Data Transfer Object
    • (Data Transfer Object, 데이터 전송 객체)란 프로세스 간에 데이터를 전달하는 객체를 의미

  • controller 와 entity 폴더 생성
  • Board 클래스 생성
    • 게시판을 만든다고 생각하고 필드 넣어주기
  package org.example.entity;

import java.util.Date;

public class Board {
    private int Long; // 1 2 3 4 5 (자동증가)
    private  String title; // 제목
    private  String content; // 내용
    private  String writer; // 이름, 아이디, 비번
    private int cnt; // 조회수
    private Date indate; // 작성일

    // setter, getter, 생성자, toString
    // Lombok API
}

  • Lombok API 추가하기
  • bulid.gragle 에 붙여 넣기
    // lombok
    compileOnly 'org.projectlombok:lombok:1.18.24'
    annotationProcessor 'org.projectlombok:lombok:1.18.24'

  • Board 클래스 가서 어노테이션 생성
    • @Data
    • @NoArgsConstructor
    • @AllArgsConstructor

profile
제가 한 번 해보겠습니다.

0개의 댓글