몽땅뚝딱 개발자

[JAVA/Spring Boot] TodoList 만들기(2) - 프로젝트 생성 및 기본 설정 본문

Development/Spring Framework

[JAVA/Spring Boot] TodoList 만들기(2) - 프로젝트 생성 및 기본 설정

레오나르도 다빈츠 2021. 6. 9. 14:43

 

1. New - Spring Starter Project로 새로운 프로젝트를 생성한다.

 

 

 

 

2. Name, Package 등의 기본설정을 한다.

Java Version은 default 값이 11이라 내가 설치한 버전인 8로 변경해주었다.

 

 

 

 

 

 

3. Next > pom.xml에 들어갈 의존성들을 추가 > Finish

아래의 이미지와 같이 5개를 추가하고 시작했다.

이 프로젝트에서는 lombok을 사용하지않았지만 필요한 경우 lombok까지 추가해주면 된다.

 

 

 

 

각각 많은 편의를 제공하는 기능들이 있겠지만 내가 알고있는 소소한 사실을 설명으로 추가한다.

 

1) Spring Boot DevTools

class 파일이 수정될 때 마다 자동으로 빌드한다.

 

2) Spring Web

@Mapper, @Service 같은 어노테이션을 사용할 수 있다.

 

3) myBatis Framework

공식문서에는 myBatis 어플리케이션을 빠르게 빌드하기 위한 라이브러리라고 적혀있다.

myBatis를 사용하기 위한 라이브러리이며, @Mapper 어노테이션이 있는 class 파일을 검색한다.

pom.xml에는 'mybatis-spring-boot-starter'라는 이름으로 버전까지 알아서 추가된다.

Spring Boot 버전이 2.5.0이라 아래의 요구사항 표와 맞게 2.2.0 버전을 사용했다.

 

공식 문서에서 제공하는 요구사항 표

 

 

 

 

 

4. 프로젝트의 기본 구조를 생성한다.

[Spring Lagacy Project]로 만드는 프로젝트와 달리 [Spring Starter Project]에는 기본적으로 없는 폴더가 많다.

내가 원하는 구조대로 미리 폴더를 추가해주었다.

 

1) config, controller, service, mapper, vo 등의 패키지 추가

2) src/main에 webapp 폴더 생성

3) 생성한 webapp 폴더 밑에 'static' 폴더 생성 후 하위에 각 리소스(css, js, img 등)를 넣을 폴더들 추가

4) 생성한 webapp 폴더 밑에 'WEB-INF' 폴더 생성 후 jsp 파일을 넣을 'jsp' 폴더 추가

5) src/main/resources에 mapper.xml을 담을 'mapper' 폴더 추가

 

 

 

 

 

5. pom.xml에 다른 의존성을 추가한다.

 

📄 pom.xml

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>
		
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- 어노테이션을 사용하기 의존성 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		<!-- //어노테이션을 사용하기 의존성 -->

		<!-- Swagger를 사용하기 위한 의존성 -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.9.2</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.9.2</version>
		</dependency>
		<!-- //Swagger를 사용하기 위한 의존성 -->

		<!-- JSON을 사용하기 위한 의존성 -->
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-core-asl</artifactId>
			<version>1.8.0</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.8.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20080701</version>
		</dependency>
		<!-- //JSON을 사용하기 위한 의존성 -->

		<!-- jsp를 사용하기 위한 의존성 -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>
		<!-- //jsp를 사용하기 위한 의존성 -->

		<!-- jstl을 사용하기 위한 의존성 -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<!-- //jstl을 사용하기 위한 의존성 -->

		<!-- myBatis를 사용하기 위한 의존성 -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.2.0</version>
		</dependency>
		<!-- //myBatis를 사용하기 위한 의존성 -->

	</dependencies>

 

 

 

 

6. application.properties를 설정한다.

 

📄 application.properties

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

# MySql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/todo?characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=이름
spring.datasource.password=비밀번호

 

Model And View를 사용하지않고 JSP 이름을 리턴하면 바로 이동할 수 있도록 prefix와 suffix를 설정한다.

그리고 연결할 DB 정보를 적어준다.

 

 

 

 

 

참고자료

 

mybatis-spring-boot-autoconfigure – Introduction

Introduction What is MyBatis-Spring-Boot-Starter? The MyBatis-Spring-Boot-Starter help you build quickly MyBatis applications on top of the Spring Boot. By using this module you will achieve: Build standalone applications Reduce the boilerplate to almost z

mybatis.org

 

 

 

GIT

🚩 Github | https://github.com/hvsundev/Spring

 

 

 

 


개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.

 

 

Comments