#4. intelliJ & Spring Boot 시작

Inkyung·2022년 10월 27일
0

웹프레임워크

목록 보기
4/12

intellij 시작하기

Spring Initializr

project=gradle, artifact=Student_201904385, add dependency=spring web → generate

생성된 파일 압축 해제하고 인텔리제이에서 Student_201904385 파일 열기

  • gitignore 자동생성됨
http://localhost:8080/
  • 자바 버전 17.. 해결하기..
    Cause: error: invalid source release: 17
  • 해결한 방법….하…

일단 JVM 버전 변경 - 이건 진짜 왠만하면 자동으로 잡힌다.

  1. [File] - [Project Structure] - [Project] - [Project SDK] 변경
  2. [File] - [Project Structure] - [Project] - [Project language level] 변경
  3. [File] - [Project Structure] - [Module] - [Sources] - [Language level] 변경
  4. [File] - [Project Structure] - [Module] - [Dependencies] - [Language level] 변경
  5. [Preferences] - [Build, Execution, Deployment] - [Compiler] - [Java Compiler] - [Project bytecode version] 변경
  6. [Edit configurations] - [Environment] - [JRE] 변경 : 이 부분은 default로 변경하면 알아서 맞춰진다.

Gradle JVM 변경

[Preferences] - [Build, Execution, Deployment] - [Build Tools] - [Gradle] - [Gradle JVM] 변경
만약에 Maven으로 위와 같은 오류가 났다면 Gradle JVM 변경한 것 처럼 [Build Tools] - [Maven] 에서 관련된 JVM/JRE 버전을 맞춰주면 될 것 같다.
[Intellij - error: invalid source release: 17 오류(https://binux.tistory.com/92)

//github push하기
echo "# Student_123456" >> README.md
git init
git add README.md
git add .
git commit -m "first commit"
git branch -M main
git remote add origin [https://github.com/hufs-web/Student_2019104385.git](https://github.com/hufs-web/Student_123456.git)
git push -u origin main

Intellij - error: invalid source release: 17 오류

SpringBoot

  • Spring BootJava를 기반으로 한 웹 어플리케이션 프레임워크이다.
  • Spring Boot가 등장하기 전 Spring 프레임워크가 먼저 등장했는데 Spring의 초기 환경 설정시 시간이 많이 할애되는 문제를 해결하고자 등장한 프레임워크!
  • 메이븐이나 그레이들의 dependency에 starter 라이브러리만 작성한다면 초기 셋팅에 필요한 라이브러리들을 모두 세팅해주게 된다.
  • 이를 통해 복잡했던 초기 환경 설정 과정을 간소화시킬 수 있게 되었다.
  • 또 starter 라이브러리는 dependency에 존재하는 라이브러리들의 버전 관리를 자동적으로 해줘 버전이 맞지 않아 발생하는 오류를 방지할 수 있다.

기본적인 server 구조

@GetMapping(”/함수이름”)

함수 이름은 뭘 써도 상관 없지만 알아볼 수 있도록! 의미 있게 지을 것

// helloController

package com.example.Student_201904385.controller;

import com.example.Student_201904385.dto.HelloRequest;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/greeting")
public class helloController {
    @GetMapping("/hello")
    public String hello(@RequestParam(required = false, defaultValue = "") String name,
                        @RequestParam(required = false, defaultValue = "1") int level) {
        return "hello " + name + "(" + level + ")";
    }

    @GetMapping("/path-hello/{name}")  //앞은 고정 {}은 변경
    public String pathHello(@PathVariable String name) {
        return "hello " + name;
    }

    @GetMapping("/map-hello")
    public String mapHello(@RequestParam Map<String, String> queryParam) {

        queryParam.entrySet().forEach(stringStringEntry -> {
            System.out.println("key : " + stringStringEntry.getKey() +
                    " value : " + stringStringEntry.getValue());
        });
        return "";
    }

    @GetMapping("object-hello")
    public String objectHello(HelloRequest requestParam) {
        System.out.println(requestParam.toString());

        return requestParam.toString();
    }

    @GetMapping("/hi")
    public String hi() {
        return "hi";
    }
}
// HelloRequest

package com.example.Student_201904385.dto;

public class HelloRequest {
    private String name; 		// 변수 선언하고 getter, setter, toString
    private int level;
    private String address;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "HelloRequest{" +
                "name='" + name + '\'' +
                ", level=" + level +
                ", address='" + address + '\'' +
                '}';
    }
}

TalendAPI

http://localhost:8080/greeting/hi

❗️이렇게 맵핑된 주소로 접속해서 웹브라우저를 통해 확인할 수도 있지만 일일이 접속해야하니 번거롭다

  • Talend API Tester : HTTP 통신을 테스트하는 프로그램
    GET,POST,PUT,DELETE 등의 다양한 HTTP 메서드를 설정하고 쿼리(query)와 파라미터(parameter)를 담아 요청을 보낼 수 있다.

그러면 이렇게 편하게 동작 테스트 할 수 있음!

0개의 댓글