Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바
- githubactions
- 벨먼-포드
- http 완벽가이드
- 백준
- 스프링
- 네트워크
- 프로그래머스
- 메시지
- 트랜잭션
- AWS
- Effective Java
- java
- Spring
- http
- 파이썬
- docker
- 스프링부트
- 데이터베이스
- 토이프로젝트
- 국제화
- HandlerExceptionResolver
- yaml-resource-bundle
- 도커
- 커스텀예외
- kotlinglogging
- CI/CD
- JIRA
- 이펙티브 자바
- restControllerAdvice
Archives
- Today
- Total
땃쥐네
Spring Boot를 통하여 Spring 개발 시작하기 본문
개발환경
- JDK 11 이상
- IDE : IntelliJ
프로젝트 생성하기
- start.spring.io에서 Spring 프로젝트 생성
- 설정법
- Project : Gradle Project
- Language : Java
- Spring Boot : SNAPSHOT, M1(미정식 버전)과 같은 문자가 안 붙은 버전들 중 최신 버전
- Project Metadata
- Group : 주로 기업 그룹, 도메인
- artifact, name : 빌드 결과물의 이름
- Packaging : Jar
- Java : 11
- Dependencies (의존 라이브러리)
- Spring Web
- Thymeleaf
- 가져오기
- 받은 zip 파일을 풀기
- IntelliJ에서, File - Open에서 build.gradle을 선택하여 프로젝트 Open
프로젝트 폴더
.gradle
: gradle 관련 파일들.gitignore
: git의 tracking에서 열외 시킬 것들. 올리지 말아야할 파일들build.gradle
: gradle의 빌드 설정. 앞서 start.spring.io에서 설정한 내역들이 여기에 잡혀있음. 버전 설정 및 가져올 라이브러리.- 본래 의존성을 추가할 때 수동으로 버전을 관리해줘야했지만, SpringBoot가 Gradle은
dependencies
에서 지정한 라이브러리들이 의존하는 라이브러리들(의존 라이브러리의 의존라이브러리들까지)을 모두 자동으로 가져오고 각각의 현재 프로젝트에 최적화된 버전을 mavenCentral에서 땡겨옴.
- 본래 의존성을 추가할 때 수동으로 버전을 관리해줘야했지만, SpringBoot가 Gradle은
- src
- main : 실행 코드
- java : 자바 파일
- resources : 자바 파일이 아닌 것들. (XML, properties 등 설정파일, html, ...)
- test : 테스트 코드
- main : 실행 코드
실습 1>
- 기본 메인 클래스 파일을 통해 실행
@SpringBootApplication
애너테이션이 달려있음.- 메인 메서드에서
SpringApplication.run(메인클래스.class, 메인메서드의 args)
메서드를 호출하여 실행
- 실행 결과 : 웹 브라우저 상에서 localhost:8080을 띄웠을 때 에러 메시지가 뜨면 정상적으로 출력 (정적, 동적 html 파일을 어떤 것도 작성, 연동해주지 않았기 때문)
실습 2> Welcome 페이지 띄우기
<!DOCTYPE HTML>
<html>
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>resources/static/index.html 파일을 정적으로 웹 브라우저 상에 띄웁니다!</p>
<p>동적 페이지 가기 : <a href="/hello">hello</a></p>
</body>
</html>
resources/static/index.html
을 작성하여 올려두면, 이를 Welcome 페이지로 하여 브라우저 상에 그대로 띄움.(정적 페이지)- 링크로 걸어둔
/hello
에는 대응하는 html 파일이 작성되어있지 않기 때문에 열었을 때 에러 메시지가 뜸.
실습 3> 동적 페이지 띄우기
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${data}" >안녕, 스프링!!!</p>
</body>
</html>
resources/templates/noHello.html
thymeleaf
를 템플릿 엔진으로 함.
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "Spring!!!");
return "noHello";
}
}
- 웹 브라우저에서
localhost:8080/hello
에 접속 - 내장된 톰켓 서버를 통해 스프링 컨테이너에 접근
/hello
의 hello가 맵핑된 메서드를 찾아냄.addAttribute
메서드를 통해${data}
에 대한 결과값을 "Spring!!!"으로 지정viewResolver
에서, return 값에 해당하는resources/template/리턴문자열.html
파일을 템플릿 엔진에서 처리
- 페이지에 띄움.
'Spring' 카테고리의 다른 글
[Spring DB] 커넥션 풀을 통한 커넥션 획득 (0) | 2022.10.02 |
---|---|
[Spring DB] 순수 JDBC 기술로 CRUD (0) | 2022.09.18 |
[Spring DB] 커넥션과 DataSource (0) | 2022.09.04 |
[Spring DB] JDBC 표준 인터페이스의 등장 배경 (1) | 2022.08.21 |
Spring 프로젝트 빌드 및 실행 (0) | 2021.12.13 |
Comments