본문 바로가기
Springboot

스프링부트 #1 : Spring Boot 프로젝트 실행해보기(maven, gradle) -230207

by haheehee 2023. 2. 8.

++ 스프링 부트 (Spring Boot) ++

- 메이븐의 라이브러리 자동 업데이트 기능을 이어받으면서 기존 스프링 프레임워크의 복잡한 설정 과정은 최대한 줄이면서 개발 가능

- 배포 또는 테스트를 스프링 프레임워크보다 쉽고 빠르게 할 수 있음

 

- 일반적인 응용 프로그램을 단독으로 실행하는 수준으로 스프링 애플리케이션을 구현 가능

- 프로젝트 환경을 구축할 때 필요한 톰캣, Jetty, UnderFlow 같은 서버 외적인 툴이 내장 (따로 설치x)

- XML 기반 설정이나 코드 없이 환경 설정을 자동화할 수 있음

- 의존성 관리를 쉽게 자동으로 할 수 있음

 

** Spring에서의 servlet-context, app-servlet이 자동화된다!

 

 


Spring Boot 환경설정하기(maven)

 

STS4 다운로드

spring-tool-suite-4-4.10.0.RELEASE-e4.19.0-win32.win32.x86_64.self-extracting.jar 파일

더블클릭해서 압축풀기

압출 풀린 폴더 (sts-4.10.0.RELEASE) 로컬디스크 C에 넣기

 

SpringToolSuite4.exe를 더블클릭해서 실행

일단은 경로변경없이 그대로 Workspace 설정

 

초기화면

 

File - New - Spring Starter Project

 

Name : demo

Type: Maven

Packaging: War

Java Version : 11

나머지 그대로 설정

 

Web - Spring Web

Jsp 연동!!하는 것

Finish

 

pom.xml이 전체 설정

 

여기서 속성과 의존성을 변경해주면 된다. 

자바 버전은 1.8로!

 

자동생성되어 있는 파일

연동하는 설정들이 이곳에 되어 있다. (web.xml과 servlet-context )

ServletInitializer에서 설정, DemoApplication이 실행될 때 적용

 

DemoApplication.java에서 @SpringBootApplication : ServletInit을 불러오는 것.

실행되면서 설정 파일을 가지고 올 수 있는 것!

한마디로 프로그램 프로세스의 진입점

(Dispatcher Servlet과 비슷)

 


Spring Boot 프로젝트 실행해보기 실습 #1

 

DemoController.java 생성 후, 코드 작성

 

Run As - Spring Boot App

 오류남..

 

pom.xml에서 

parent version을 2.0.6.RELEASE로 변경

 

maven update 후, 다시 실행

 

Console에 결과가 나온다.

 

주소창에 localhost:8080을 입력하면

나뭇잎과 함께 

Hello Boot!가 출력된다.

 

오류가 난다면(junit, jupiter 관련)

pom.xml에 <dependencise>태그 안에

추가

 


이미지는 스프링부트에서 꼭 src/main/resources - static - image 폴더에서 사용해야 한다.


프로젝트 설정들은 다 application.properties에 넣으면 된다.

Server 포트와 alias 등등 (action-mybatis, web일부분, servlet-context의 일부분, jdbc.properties, ...)


jsp파일은 경로를 Springframework와 동일하게 해야하지만, 

webapp부터는 각각 생성해주어야하므로 조금 번거롭다.

 

JSP에서 

${}를 사용하기 위해서는 (jstl이므로) pom.xml에 의존성 주입을 해주어야 한다. (지원안됨)

이렇게 <dependencies>태그 안에 추가해주어야 한다.

 

...
                <dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.3.2</version>
			<scope>test</scope>
		</dependency>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
	</dependencies>
...

 


Spring Boot 프로젝트 실행해보기 실습 #2 (Maven)

 

Help - Eclipse Market - Eclipse Enterprise Java and Web Developer Tools 설치 (required만)

 

서버 선택 후(tomecat version9.0) 설정, 

 

프로젝트 우클릭 - Properties - Java Build Path - Add Library

Server Runtime 선택 - tomcat v9.0 선택 후 

apply and close

 

 

package com.example.demo;

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

@Controller
public class DemoController {
	@ResponseBody
	@RequestMapping("/")
	public String home() {
		System.out.println("Hello Boot!!");
		return "Hello Boot!";
	}
	
	@RequestMapping("/hello.do")
	public String hello(Model model) {
		System.out.println("안녕하세요");
		model.addAttribute("message", "hello.html입니다.");
		return "hello";
	}
}

DemoController.java

 

function test() {
	alert("테스트입니다.");
}

scriptTest.js

 

#Server
server.port=8080
server.session.timeout=360000

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

application.properties

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}"  />
<% request.setCharacterEncoding("UTF-8"); %>

<html>
<head>
	<script src="${contextPath}/js/scriptTest.js" type="text/javascript"></script>
<meta charset="utf-8">
<title>hello.JSP 페이지</title>
</head>
<body>
	안녕하세요<br>
	<h2>${message}</h2>
	<img width=200 height=200 src="${contextPath}/image/mallang.jpg" /> <br>
	<input type="button" name="test" value="테스트" onClick="test();">
</body>
</html>

hello.jsp

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.6.RELEASE</version>
...
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
...
		
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.3.2</version>
			<scope>test</scope>
		</dependency>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
	</dependencies>
...
</project>

pom.xml

 

Run As - Spring Boot App

주소창에 localhost:8080/hello.do

 

-- 결과 --

테스트 버튼 클릭하면

alert창 출력

 


Spring Boot 프로젝트 실행해보기 실습 #3 (Gradle)

 

- 그레이들은 그루비(groovy - 동적 객체 지향 언어) 스크립트 기반의 동적인 빌드 기능을 제공

   (메이븐은 XML 기반의 정적인 빌드를 제공)

- 메이븐보다 빌드 작업이 간단, 프로그래밍만으로 기능을 추가할 수 있음

 

Type : Gradle

Packaging: jar

Name, Group과 Package다 바꿔줌

 

Next

version 2.7.8

- JDBC API

- MyBatis Framework

- MariaDB Driver

- Spring Security(선택)

- Spring Web 선택 후 Finish

 

https://start.spring.io/starter.zip?name=mybook&groupId=com.mybook&artifactId=mybook&version=0.0.1-SNAPSHOT&description=Demo+project+for+Spring+Boot&packageName=com.mybook&type=gradle-project&packaging=jar&javaVersion=11&language=java&bootVersion=2.7.8&dependencies=mariadb&dependencies=jdbc&dependencies=mybatis&dependencies=security&dependencies=web

Full Url 복사해놓기


java언어를 사용하는 프로젝트!

 

build.gradle

(pom.xml과 같은 것이라 생각하면 된다.)

mavenCentral() 저장소 사용

Java version (sourceCompatibility = '1.8')를 1.8로 변경

group : 기본 package

 

이게 그루비언어!

"groupid:version" 형태로 사용

 


gradle-4.10.2 로컬디스크 C에 넣기

 

 

C:\gradle-4.10.2\bin

 

시스템 속성 - 환경변수 - 시스템 변수에서 path 선택, 편집

Gradle있으면 삭제 후, 추가,  붙여넣기

 

cmd 창에서 gradle -v 명령어로 확인

 

 

댓글