++ 스프링 부트 (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 명령어로 확인
'Springboot' 카테고리의 다른 글
스프링부트 #2 : Spring Boot gradle build tiles (controller, dao, vo, service) spring to springboot -230208 (0) | 2023.02.10 |
---|
댓글