( 강의 수강 후 정리한 내용입니다. 코드로 배우는 스프링 )
1. 프로젝트 생성
a. Spring Initializer
spring Initializer를 통해 프로젝트를 생성할 수 있다.
Project의 빌드 방식과 언어 선택,
Spring Boot 버전을 선택한 후에 Generate를 누르면
Spring Boot 프로젝트가 생성된다.
Dependencies:
- Spring Boot DevTools
- Lombok
- Spring Web
생성된 Spring Boot를 IDE를 열면 끝.
b. IntelliJ 로 Spring Boot 프로젝트 만들기
마찬가지로
프로젝트 이름, 위치, 언어, 빌드 방식 선택
Next
기본적인 Dependency 추가 후 Finish.
생성된 build.gradle 파일을 확인하면
스프링 부트의 버전과 프로젝트 이름,
그리고 프로젝트에 추가된 dependencies를 확인할 수 있다.
plugins {
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
// 라이브러리 다운로드 할 레퍼지토리
repositories {
mavenCentral()
}
// starter-web : 톰캣, 스프링 웹 mvc
// spring-boot-starter: 스프링 부트 + 코어 + 로깅
// spring-boot-starter-test: spring-test 스프링 통합 테스트 지원
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
프로젝트를 생성하면
main으로 HelloSpringApplication이 생성됨을 확인 할 수 있다.
SpringBoot은 내장 톰캣을 제공하기 때문에 별다른 서버 설정 없이 바로 실행이 가능하다.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloSpringApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class, args);
}
}
2. Controller 및 View 추가하기
간단한 Controller를 추가해본다.
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!");
return "hello";
}
}
/hello 라는 요청을 받으면 model에 data - hello 값을 갖는 속성을 추가한 후 hello를 리턴한다.
<!DOCTYPE html>
<html xmlns: xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>
templates/hello.html 에 위와 같은 html를 작성했다. (thymeleaf 사용)
springBoot의 동작 구조
웹 브라우저에서 요청이 들어오면 spring은 요청에 맞는 controller을 찾아 맵핑한다.
Controller은 요청을 받아 로직을 수행하고 결과를 리턴한다.
Controller에서 리턴하면 ViewResolver가 결과에(hello.html) 해당하는 view를 찾아 리턴한다.
springboot는 기본적으로 name.html을 반환 한다고 한다.
3. Build 하기
위 프로젝트는 IDE 내에서 실행시킨 방법이고
터미널에서 직접 빌드하여 실행시키는 방법
./gradlew build
cd build
cd libs
java -jar PROJECT_NAME-0.0.1-SNAPSHOT.jar
터미널에 프로젝트 폴더로 이동하여
gradle 명령어로 build 한다.
build후에 보면 build폴더가 생성됨을 볼 수 있는데
폴더 내 Libs에 보면 실행 가능한 jar 파일이 생성된 걸 볼 수 있다.
jar 파일은 java -jar jarFileName 으로 실행시킬 수 있다.
실제 서버에 jar 파일을 올리고 실행시키면 spring이 띄워진다.
'Java > Spring' 카테고리의 다른 글
[Spring] Spring Bean 등록과 의존관계 설정 (0) | 2022.06.20 |
---|---|
[SpringBoot] Junit 으로 단위테스트 하기 (0) | 2022.06.17 |
[Spring Boot] 2. 스프링 웹 개발 기초 - Static, MVC패턴, API 방식 (0) | 2022.05.30 |
[Spring Framework] 스프링의 이해/개념 (IoC, Bean, AOP, PSA) (0) | 2021.10.22 |
Servlet과 JSP, MVC 패턴 (0) | 2021.06.30 |