[SpringBoot] TIL 073 - 23.11.07

유진·2023년 11월 7일
0
post-thumbnail

SpringBoot

  • 서버를 따로 켜지 않아도 됨 => 그렇다면 실행법은? main() 실행하는 class 따로 있음

단점 =
Boot만의 문법을 따로 배워야 함,
.xml -> 클래스 변환해야 해서 알아보는데 어려움이 있을 수 있음



3번은 선택사항


실행파일과 같은 위치에 lombok 넣기

참고


-> 프로젝트가 뜨면 생성완료


BoardProjectBootApplication.java

F11 ->


package edu.kh.project;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BoardProjectBootApplication {

	public static void main(String[] args) {
		SpringApplication.run(BoardProjectBootApplication.class, args);
	}

}

application.properties

#주석
server.port = 80


  • templates : WEB-INF / views (확장자 : .html)
  • static : image, js, css

  • build.gradle = pom.xml

    -> 필요한 것 넣거나 뺐으면 꼭 해야하는 작업(변경사항 있을때마다 해야함)

참고 : 단축키 설정 가능

BoardProjectBootApplication.java

@SpringBootConfiguration : 스프링 설정 파일을 나타내는 어노테이션
@EnableAutoConfiguration : 자동 설정 관련 어노테이션(ex. 톰캣)
@ComponentScan : Bean 등록

package edu.kh.project;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // Spring Boot Application을 만들고, 수행하는데 필요한
						// 필수 어노테이션을 모아둔 (최상위) 어노테이션
public class BoardProjectBootApplication {

	public static void main(String[] args) {
		SpringApplication.run(BoardProjectBootApplication.class, args);
	}

}

MainController.java

package edu.kh.project.main.controller;

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

@Controller
public class MainController {
	
	@RequestMapping("/")
	public String mainForward(Model model) {
		
		model.addAttribute("message", "스프링 부트 테스트 중입니다");
		
		// Spring MVC : /webapp/WEB-INF/views/common/main.jsp
		
		// Spring Boot (+ thymeleaf 템플릿 엔진)
		// src/main/resources/templates/common/main.html
		
		return "common/main";
	}

}

main.html

  • STS = html 파일이 없으므로 Visual Studio Code와 병행해서 써야 함
<!-- !치고 Enter 누르면 자동으로 기본 <!DOCTYPE html> 코드 쳐짐 -->

<!DOCTYPE html>
<html lang="en" xmlns="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>스프링 부트 테스트</title>
</head>
<body>
    <h1>메인 페이지 입니다.</h1>

    <h1 th:text="${message}">request scope에 담긴 메세지 출력될 것임
        (어차피 태그 메세지가 읽히기 때문에 주로 설명/주석같은것 적음)</h1>

    <input type="text" th:value="${message}">

    <script th:inline="javascript">
        const message = /*[[${message}]]*/ "전달 받은 message";

        alert(message);
    </script>
</body>
</html>

[ 출력화면 ]

  1. Thymeleaf 문법 공부하기

0개의 댓글