스프링 부트 설치방법 및 Springboot개발 환경 설정 (이클립스 STS)
스프링 부트를 설치하면, 예전에 스프링 설치해서 환경 설정 하던 과정에서 발생하던 복잡한 일련의 작업을 한방에 끝낼 수 있다.
스프링 부트 설치 방법
1. Spring Initializr 사이트를 방문한다.
2. 개발 환경을 선택하기
빌드관리 도구를 선택해준다. Spring Boot 버전 선택 및 패키징을 Jar로 할지 War로 할지 선택해주고, 자바 버전을 선택해준다. 빌드관리 도구로 Gradle을 사용할지, Maven을 사용할지 결정하시면된다. 둘의 차이는 다음과 같다.
- Gradle: Groovy 언어를 사용해 빌드 관리를 하고, 멀티 프로젝트에 사용하기 좋다. Maven보다 간결하게 빌드 관리를 할 수 있다.
- Maven: 빌드 중인 프로젝트, 빌드 순서 등을 pom.xml 에 명시한다.
Gradle 자체가 Maven과 Apache Ant의 장점을 모아서 개발한 빌드관리 도구이기 때문에 저는 Gradle을 선택해서 설치를 진행했다.
Dependencies는 아무것도 선택하지 않았다. Dependencies는 스프링 부트를 이용해 스프링 프레임웍 개발에 필요한 부가적인 라이브러리를 자동으로 설치 및 연결을 해주는 기능이다. 이 포스팅에서는 기본적인 스프링 프레임웍의 핵심 기능들을 우선 알아보고, 부가적인 기능은 없는 프로젝트를 생성한다.
다음으로 프로젝트 메타데이터를 설정해준다. Group은 프로젝트 명, Artifact는 프로젝트 빌드명이라고 생각하면된다.
3. GENERATE 버튼을 클릭한다.
자동으로 프로젝트 압축한 파일이 다운로드 되고, 다운로드한 파일은 원하는 위치에 압축을 풀어주면된다.
스프링부트 프로젝트 import 방법
스프링 프레임웍 개발을 위한 IDE는 Eclipse와 IntelliJ를 많이 사용한다. IntelliJ의 경우 유료 구독을 해야 이용할 수 있는 IDE이기 때문에 Eclipse를 사용한다. 간단한 스프링 개발은 무료 버전인 IntelliJ IDEA Community Edition으로 충분히 가능하다.
이클립스에서 스프링부트 프로젝트를 임포트 해보자. 기존에 사용하던 이클립스라면 STS(Spring Tool Suite) 설치해야한다. Help -> Eclipse Marketplace에서 “sts” 검색 후 “Spring Tools 3 (Standalone Edition)” 클릭하면 된다.
1. 이클립스를 실행한다.
2. 상단 메뉴에서 File > Import 메뉴를 클릭한다.
3. 스프링부트에서 프로젝트 설정시 빌드도구를 Gradle를 선택했음으로 Gradle를 선택하여 가져온다.
Existing Gradle Project를 클릭한다.
(인텔리제이를 사용할 경우, Open > 압축 푼 폴더 안의 build.gradle을 선택하면 된다.)
4. Next 버튼을 클릭한다.
5. 스프링부트 압축파일을 풀어준 폴더를 선택해준다. (C:\SpringBootProject\demo)
6. Import Option은 변경없이 그대로 두고 Finish 버튼을 클릭한다.
build.gradle을 열어보면 start.spring.io에서 세팅했던 개발환경들에 대한 정보를 확인할 수 있다. 스프링부트 버전과 Java 버전을 확인 할 수 있다.
개발환경들이 잘 세팅되어 있는 것을 확인했다면, 스프링부트가 잘 설치되었는지 테스트 빌드를 돌려보자.
이클립스에서 스프링부트 프로젝트 생성을 바로 할 수 도 있다.
이클립스(STS:Spring Tool Suite)에서 Spring Boot 프로젝트 생성 방법
STS(Spring Tool Suite)는 이클립스 (or visual studio code or theai) 기반의 스프링에 최적화된 IDE이다. java로 프로젝트 하는 곳에서 Spring을 사용하지 않는 곳이 없으니 이 STS도 개발환경 구성의 필수 요소로 자리잡았다.
1. spring 공식 사이트에서 STS 다운로드 받아서 설치하자. 설치파일의 용량은 500메가가 조금 넘는다.
2. 최신버전인 4.20.1 버전을 다운받은 후 더블클릭하여 실행하면 압축이 풀린다.
sts-4.20.1.RELEASE 폴더가 생성된다.
해당 폴더를 c드라이브로 옮겼다.
SpringTollSuite4.exe 파일을 클릭하여 STS를 실행한다. workspace는 본인의 원하는 폴더를 지정해준 후 Launch 버튼을 클릭한다.
예전에는 이클립스에서 개발환경 설정할때 보면 java도 설치하고 그 설치 경로를 eclispe.ini 파일에 매핑을 시켜주는 등의 과정이 필요했는데 STS에서는 plugin에 jre가 들어있어서 별도의 java 관련 설정을 하지 않아도 알아서 잘 된다. 만약 자바 버전을 변경하려면 원하는 version의 java 설치는 해야 한다.
3. Create new Spring Starter Project를 클릭한다.
4. 기본 설정 후 Next버튼을 클릭한다.
참고로 패키징을 Jar를 선택하면 jsp는 사용할 수 없다.
5. New Spring Starter Project Dependencies에서 왼쪽 아래에 Web 클릭 후 Spring Web의 체크 박스 클릭 후 Finish버튼을 클릭한다. SQL을 선택해서 오라클 등의 드라이버 추가도 할 수 있다.
- Spring Web 추가
- Spring Boot DevTools 추가
- Mybatis Framework 추가 (Mybatis 사용)
- MySQL Driver 추가 (MySQL 사용)
스프링부트 프로젝트 서버 실행 방법
생성한 프로젝트가 정상적으로 생성되었는지 확인하기 위해서 왼쪽 아래에 Boot Dashboard의 local 클릭 후 아래에 프로젝트명에서 우클릭 후 start혹은 debug를 클릭하여 서버를 실행합니다.
또는 왼쪽 상단 프로젝트를 우클릭하여 Run as > Spring Boot app을 클릭하는 방법도 있다.
스프링부트 HelloWorld를 찍어보자.
helloWorld를 표시하기 위해 package를 생성하거나 기존 패키지 그룹에 contorller 생성하자.
Class파일을 하나 HelloController 이름으로 생성해준 후 다음과 같이 코드를 작성한다.
@RestController 어노테이션을 이용하여 해당 클래스가 REST 컨트롤러 기능을 수행하도록 한다.
@RequestMapping 어노테이션은 해당 메서드를 실행할 수 있는 주소를 설정한다. 애플리케이션의 기본 주소를 /로 지정하였다.
[HelloController.java]
package com.example.hello;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/java")
public static void main(String[] args) {
System.out.println("helloWorld!!!");
}
@RequestMapping("/")
public String hello() {
return "Welcome!! HelloWord";
}
}
만약 HelloController.java를 같은 패키지가 아닌곳에 설정하려면 scanBasePackages 값을 설정한다.
Test1Application .java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//@SpringBootApplication
@SpringBootApplication(scanBasePackages ="com.example.demo.*")
public class Test1Application {
public static void main(String[] args) {
SpringApplication.run(Test1Application.class, args);
}
}
코드 작성 후 서버 재시작한다.
브라우저를 열고 다음 2개의 URL를 확인한다.
http://localhost:8080/java
http://localhost:8080/
Maven 프로젝트로 스프링부트 프로젝트를 생성후 jsp를 추가하는 방법
Spring boot에서는 JSP는 지양한다. Template 구조의 UI를 권장하며 프로젝트 생성시에도 JSP는 권장에서 빠져있다.
1. pom.xml에 톰켓, jsp, jstl 등 필요하면 추가해준다. 반드시 <dependency> </dependency> 안에 아래 추가해줄것!
<!-- TOMCAT -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
2. application.properties에 설정 추가
#view 경로 설정
spring.mvc.view.prefix=/WEB-INF/views/
#view 포맷 설정
spring.mvc.view.suffix=.jsp
#html, css, js 경로 설정
spring.mvc.static-path-pattern=/resources/**
#MySQL Driver 설정
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/schema
#spring.datasource.username=root
#spring.datasource.password=root
#server.servlet.encoding.charset=utf-8
#server.servlet.encoding.enabled=true
#server.servlet.encoding.force=true
#마리아DB
#spring.datasource.hikari.driver-class-name=org.mariadb.jdbc.Driver
#spring.datasource.hikari.jdbc-url=jdbc:mariadb://localhost:3306/t_board?characterEncoding=UTF-8&serverTimezone=UTC
#spring.datasource.hikari.username=root
#spring.datasource.hikari.password=1234
#포트 변경
#server.port=8888
2. MainController 생성 및 코드 작성
src/main/java/com/example/demo 하위에 MainController.java파일 생성 후 아래와 같이 코드를 작성한다.
[MainController.java]
@RestController 어노테이션을 이용하여 해당 클래스가 REST 컨트롤러 기능을 수행하도록 한다.
@RequestMapping 어노테이션은 해당 메서드를 실행할 수 있는 주소를 설정한다. 애플리케이션의 기본 주소를 /로 지정하였다.
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MainController {
@RequestMapping(value="/")
public String main(Model model) {
model.addAttribute("data","Welcome!! Hello World");
return "index"; // 템플릿 파일명이다. return "디렉토리/파일명";
}
}
3. index.jsp 생성 및 코드 작성
- src/main/webapp/WEB-INF/views 디렉토리 생성
- views 하위에 index.jsp 생성 및 아래 코드 작성
[index.jsp]
<html>
<head>
<link type = "text/css" rel = "stylesheet" href = "resources/css/main.css"></link>
<script src="//code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="resources/js/main.js?v=<%=System.currentTimeMillis()%>"></script>
</head>
<body>
Hello World!
<!-- 컨트럴러에서 전달 받은 데이터를 출력 -->
<span th:text="${data}">message</span>
</body>
</html>
4. src/main/resources/staic/css 디렉토리 생성후 main.css 파일 생성
[main.css]
body {
color: blue;
}
5.src/main/resources/staic/js 디렉토리 생성 및 main.js 생성
[main.js]
$(document).ready(function() {
console.log('javascript');
alert('javascript');
});
6. 스프링부트 (Spring Boot) 프로젝트 서버 시작.
7. 브라우저를 열고 로컬호스트 localhost:8080으로 접속해서 페이지 확인
서브를 재시작했더니 된다.
[이슈처리]
maven 프로젝트를 import 할 경우에는 “Detect and configure project natures”를 체크해주어야한다.
git 저장소에서 메이븐 프로젝트를 import하였으나 서버 인스턴스도 없고, 메이븐 빌드 등도 제대로 나타나지 않는다면, Maven > Update project… 를 한번 실행해준다.
gradle프로젝트를 import 할 경우에는 “Detect and configure project natures”를 체크해제해주어야한다.
. gitignore에 해당되는 configure 관련 파일들이 Git Repository에 포함되지 않아서 import를 하였을 때 Spring 프로젝트 형태를 띠지 않는 경우가 있다. 프로젝트 영역에서 마우스 우클릭하여 Configure > Add Gradle Nature을 해주면 configure 파일들이 추가되면서 정상적으로 돌아간다.
[나중에 참고하자]
https://jung-max.github.io/categories/Web/SpringBoot/
https://byunghyun23.tistory.com/category/Web%20%26%20Mobile/SpringBoot
https://sy-blog.tistory.com/141
https://backend-jaamong.tistory.com/13
https://nowonbun.tistory.com/category/Study/Java?page=1