[15] Spring Boot Project

찬과장·2025년 4월 29일
0

Spring

목록 보기
15/17
post-thumbnail

SpringMVC05

Spring Boot Project

  • 요즘은 다 boot project쓴다.
  • 버전을 자동으로 맞춰주기 때문에 따로 버전관리를 할 필요가 없다.
  • boot는 자체 Tomcat을 가지고 있기 때문에 따로 서버를 설치할 필요가 없다.
  • 환경설정이 빠르다.

setting

1.new ->other ->

  1. next...finish!

Boot Project 설정파일 자동완성 하는 방법

주의점

  • 주석은 #
  • 띄어쓰기는 절대금지
spring.application.name=SpringMVC05

# Tomcat Server Port \uc124\uc815
server.port=8089

# Context Path \uc124\uc815
server.servlet.context-path=/boot

# View Resolver 설정
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

# MySQL DataBase 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/com
spring.datasource.username=com
spring.datasource.password=com01

Boot 실행하는 방법

  1. src/main/java - com - SpringMVC05Application.java들어가면
    SpringBoot를 실행하는 클래스가 있다
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringMvc05Application {

	// Spring Boot를 실행하는 클래스
	public static void main(String[] args) {
		SpringApplication.run(SpringMvc05Application.class, args);
	}

}
  1. 여기서 ctrl + F11 -> Spring BootAPP 선택하고 finish
  • 콘솔창에서 다음과 같이 나오면 실행 성공

Boot는 jsp를 지원하지 않기 때문에 직접 추가해줘야한다.

  • pom.xml

  • src안에 main안에 webapp생성

  • webapp안에 WEB-INF생성

  • WEB-INF안에 views생성

  • views안에 jsp생성

3-Tier Architecture

  • Spring Boot는 mapper의 역할을 3-Tier Architecture 가 대신한다.

  • 대충 아래와 같은식

만들어보기

  • boardList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>BoardList Page</h1>
</body>
</html>
  • BoardController.java
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import com.lgdx.entity.Board;
import com.lgdx.service.BoardService;

@Controller
public class BoardController {
	
	@Autowired
	private BoardService service;
	
	@GetMapping("/boardList.do")
	public String boadList() {
		List<Board> list = service.boardList();
		System.out.println(list.toString());
		return "boardList";
	}
}
  • Board.java
import lombok.Data;

@Data
public class Board {
	private int idx;
	private String title;
	private String contents;
	private String writer;
	private int count;
	private String indate;
}
  • BoardService.java
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.lgdx.entity.Board;
import com.lgdx.mapper.BoardMapper;

@Service
public class BoardService {

	@Autowired
	private BoardMapper mapper;
	public List<Board> boardList() {
		return mapper.boardList();
	}
	
}
  • BoardMapper.java
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import com.lgdx.entity.Board;

@Mapper
public interface BoardMapper {

	@Select("SELECT * FROM BOARD")
	List<Board> boardList();

}
  • MySQL
CREATE TABLE BOARD(
	IDX INT NOT NULL AUTO_INCREMENT,
	TITLE VARCHAR(100) NOT NULL,
	CONTENTS VARCHAR(1000) NOT NULL,
	WRITER VARCHAR(100) NOT NULL,
	COUNT INT DEFAULT 0,
	INDATE DATETIME DEFAULT NOW(),
	PRIMARY KEY(IDX)
);

프로젝트 파일 클릭하고 ALT + F5눌러서 업데이트

profile
나는,,,,,,,,,나다

0개의 댓글