728x90
반응형
SMALL

프로젝트 구조

* src/main/java : 자바 파일 저장하는 디렉토리.

* src/main/resources : 자바 파일을 제외한 HTML, CSS, JS, 환경파일 저장하는 디렉토리.

 

* templates : HTML 형식의 템플릿들을 저장.

* static : CSS, JS, 이미지 파일 저장.

* application.properties : 환경설정 파일.

 

* src/test/java : 테스트하는 코드를 저장하는 디렉토리.

 

* build.gradle : 플러그인과 라이브러리를 설치하기 위한 환경 파일.

 

간단한 웹 만들기

컨트롤러 만들고 URL 매핑

 

만약 아무 컨트롤러가 없는 상황에서 실행을 시키고 "localhost:8080/sbb"를 접속하면 404에러가 발생한다.

즉, 요청한 url을 찾을 수 없다는 의미이다. 

당연함. 우리가 url 매핑을 해주지 않았기 때문에..

 

package com.mysite.sbb;

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

@Controller
public class MainController {
	@GetMapping("/sbb")
	public void index() {
		System.out.println("안녕");
	}
}

이 MainController를 추가하고 index()를 추가해보자.

 

실행을 해보면 이전의 400에러와는 다르게 500에러가 발생한다.

이 오류는 index()메서드가 반환해야 하는데 아무것도 반환하지 않아 발생한 오류이다.

 

대신 console에는 프린트 할 값이 잘 출력되어 있다.

 

package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class MainController {
	@GetMapping("/sbb")
	@ResponseBody
	public String index() {
		return "index";
	}
}

코드를 이렇게 변경해 보았다. @ResponseBody 어노테이션을 추가하여 index()메서드가 String값 그대로 반환할 것이라고 알려주고, index()는 String값 "index"를 return한다.

 

어떠한 오류도 나지 않고 index 값도 정상적으로 출력된 것을 확인할 수 있다.

728x90
반응형
LIST
728x90
반응형
SMALL

Spring Boot Devtools 설치하기

 

Spring Boot Devtools 라이브러리는 서버를 매번 재시작할 필요 없이 수정한 내용이 반영된다.

package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
	@GetMapping("/hello")
	@ResponseBody
	public String hello() {
		return "Hello SBB";
	}
}

HelloController부분에서 return "Hello SBB"로 수정.

 

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.4'
	id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.mysite'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	developmentOnly 'org.springframework.boot:spring-boot-devtools' //devtools 추가
}

tasks.named('test') {
	useJUnitPlatform()
}

build.gradle 파일의 dependencies에 한 줄만 추가하면 된다.

 

sbb 마우스 오른쪽 클릭 후 Gradle -> Refresh Gradle Project 클릭하여 필요한 라이브러리 설치.

 

sbb [devtools] [:8080]으로 변경된 것 확인.

위의 첫번째 버튼을 클릭 해 서버를 재시작 하자.

 

변경된 것을 확인할 수 있다.

 

package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
	@GetMapping("/hello")
	@ResponseBody
	public String hello() {
		return "Hello Spring Boot Board";
	}
}

이번엔 return 내용을 수정해서 저장만 하고 자동 반영되는 건지 확인해보자.

 

서버를 재시작 하지 않고도 새로고침만 했더니 바로 반영되는 것을 확인할 수 있다.

 

롬복 설치하기

https://projectlombok.org/download
 

Download

 

projectlombok.org

 java -jar .\lombok.jar

다운 받은 폴더에서 cmd창으로 명령어 실행.

 

어느 IDE에 적용할건지 선택 후 Install/Update 클릭.

 

Quit Installer 클릭.

 

//lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projeectlombok:lombok'

STS 종료하고 재시작 후 build.gradle 의 dependencies 추가.

 

저장 후 gradle refesh 필수!!

 

롬복으로 Getter, Setter 메서드 만들기

package com.mysite.sbb;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class HelloLombok {
	private String hello;
	private int lombok;

	public static void main(String[] args) {
		HelloLombok helloLombok = new HelloLombok();
		helloLombok.setHello("헬로");
		helloLombok.setLombok(5);
		
		System.out.println(helloLombok.getHello());
		System.out.println(helloLombok.getLombok());
	}
}

직접 setter와 getter를 만들지 않고도 결과가 잘 나온 것을 확인할 수 있다.

 

롬복으로 생성자 만들기

package com.mysite.sbb;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public class HelloLombok {
	private final String hello;
	private final int lombok;

	public static void main(String[] args) {
		HelloLombok helloLombok = new HelloLombok("헬로", 5);
		
		System.out.println(helloLombok.getHello());
		System.out.println(helloLombok.getLombok());
	}
}

RequiredArgsContructor 어노테이션을 추가하면 생성자를 따로 만들어주지 않아도 된다.

대신 멤버변수는 모두 final 이어야 하고 그럼 setter는 사용할 수 없다.

 

728x90
반응형
LIST
728x90
반응형
SMALL

스프링 부트 프로젝트 만들기

 

스프링 부트 프로젝트 생성은 'Create new Spring Starter Project'를 클릭해서 생성.

 

빌드는 gradle로! java 버전은 자신의 환경에 맞게 설정하고 'Next' 클릭.

 

스프링 부트 버전은 SNAPSHOT이 써있지 않은, 숫자만 써있는 가장 최신 버전으로 선택 후

web을 검색해서 'Spring Web'을 선택하고 'Finish'버튼 클릭.

 

생성 완료 후 화면.

인코딩 방식이 설정되지 않았다는 Warnings 경고가 뜬다. 

마우스 오른쪽 클릭 후  'Quick Fix' 클릭.

 

UTF-8 설정을 확인하고 'Finish' 클릭.

 

그럼 아래 경고가 사라진 것을 확인할 수 있다.

 

컨트롤러 만들기

클래스명을 'HelloController'로 입력 후 'Finish'버튼 클릭.

 

package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
	@GetMapping("/hello")
	@ResponseBody
	public String hello() {
		return "Hello World";
	}
}

 

실행을 위해서 가장 기본적인 controller를 작성해본다.

 

HelloController에 @Controller라는 어노테이션을 붙여줘야 한다.

@GetMapping은 localhost:8080/hello를 요청했을 때 hello()메서드가 실행되도록 해준다.

@ResponseBody는 반환값이 "Hello World" 문자열 그 자체임을 나타낸다.

 

로컬 서버 실행하기

대시보드의 sbb를 클릭하면 위의 버튼들이 활성화 되는데 여기서 왼쪽의 시작 버튼을 클릭한다.

 

정상적으로 실행된 것을 확인할 수 있다.

 

localhost:8080/hello 확인하기

728x90
반응형
LIST
728x90
반응형
SMALL

스프링 부트 개발 환경 준비하기

JDK 설치하기

https://www.oracle.com/java/technologies/downloads/
 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

위 사이트에서 JDK를 설치할 수 있다.

17이상으로 OS에 맞춰 설치하면 된다.

C:\Program Files\Java\jdk-17 

설치가 완료되면 위와 같은 디렉터리에 설치될 것이다. 버전에 따라 디렉터리명이 다르다.

cmd창에서 java의 버전을 확인해본다.

 

STS 설치하기(Spring Tool Suite)

https://spring.io/tools
 

Spring | Tools

 

spring.io

이클립스도 진행. 자신의 OS에 맞춰 설치하면 된다.

 

다운받은 jar파일을 더블클릭하여 실행하면 'sts-4.22.0.RELEASE' 디렉터리가 생성된다.

 

여기서 jar파일 실행이 되지 않으면 아래 게시글 참고하기.

https://exuzii.tistory.com/62

 

windows에서 .jar 파일 실행이 안 될 때

STS를 설치하다가 .jar파일을 더블클릭하여 실행하면 디렉터리가 생성이 되어야 하는데 연결 파일만 뜨고 실행이 안됨.. 1. 먼저 cmd 창을 키고 java가 설치되어 있는지 확인! java -version 17버전으로

exuzii.tistory.com

디렉터리가 생성됐으면 이 디렉터리를 C드라이브 아래로 이동시킨다.

 

STS 실행하기

'SpringToolSuite4.exe' 파일 실행

 

 실행하면 작업공간을 설정해야 한다. 앞으로 작성하는 모든 파일이 이 디렉터리 안에 생긴다.

 

첫 화면

728x90
반응형
LIST

+ Recent posts