I T H

[Spring boot] 2. Spring Boot 설정 (Week 1) 본문

Spring Basic

[Spring boot] 2. Spring Boot 설정 (Week 1)

thdev 2024. 1. 24. 09:58

앞서 메인페이지를 띄워본 후

Spring Boot 와 관련된 설정 정보들을 수정 

 

[ port 충돌 시 port 변경하여 사용 ]

- 이미 프로그램이 실행된 상태에서 재 구동을 했을 경우 포트가 충돌되었다고 메시지 출력 

- 윈도우 환경의 경우 taskkill 명령어를 통해 포트 kill 후 사용해도 되고 포트를 수정하여 사용해도 됨 

application.properties 파일 수정하여 포트 번호를 변경 

경로 )
fastboard\src\main\resources\application.properties

아래 내용 1 추가 
server.port = 8090

 

[ Controller 구현 방식 - 2가지 방식 ]

@Controller 
해당 어노테이션을 이용한 컨트롤러 설정 방식 

컨트롤러 호출 후 응답값을 화면에 출력하기 위한 테스트 

화면 (view) 로 데이터를 전달하기 위해 @ResponseBody 어노테이션을 사용해야 함 

- MainController.java 파일 내용 추가 

경로 )
fastboard\src\main\java\com\info\fastboard\controller
package com.info.fastboard.controller;

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

@Controller
public class MainController {
	@GetMapping("/")
	public String index() {
		return "index";
	}
	
	@ResponseBody
	@GetMapping("/main")
	public String getValue() {
		String value = "서버에서 응답받은 값 (@ResponseBody 어노테이션 사용)";
		return value;
	}
}

- index.html 파일 내용 추가 

경로 )
fastboard\src\main\resources\static\index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Spring Boot Test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
	// ajax get call을 통해 main url을 호출 후 전달되는 값을 화면에 출력
    $.ajax({
        type: "GET",
        url: "/main",
        success: (data) => {
	        $('#divContent').html(data);
        }
    });
</script>
</head>
<body>
컨트롤러를 이용하여 서버에서 응답값을 받아옴
<div id="divContent">
</div>
</body>
</html>

@Controller / @ResponseBody 어노테이션을 이용한 컨트롤러 호출 및 응답값 출력

다른 방식으로는 RestController 어노테이션을 이용

@RestController
- @Controller와 @ResponseBody 어노테이션을 같이 사용해야 하는 것을 1개의 어노테이션 선언으로 대체함

- MainRestController.java 

경로 )
fastboard\src\main\java\com\info\fastboard\controller
package com.info.fastboard.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MainRestController {
	@RequestMapping(value="/mainTest", method=RequestMethod.GET)
	public String index() {
		String test = "rest controller 테스트중입니다.";
		return test;
	}
}

@RestController 어노테이션을 이용

 

* 추가

프로젝트 우 클릭하여 file encoding 정보를 UTF-8로 설정할 것