일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 어노테이션
- 게시판만들기
- 정처기
- 정처기설명
- java
- 자바의정석
- 자바
- 코딩테스트
- 정처기예상문제
- 정보처리기사필기
- 정보처리기사
- 정처기필기
- 자바의정석요약
- 이것이자바다
- 파이썬
- 파이선
- 소프트웨어설계
- springboot
- function
- 프로그래머스
- 스프링
- 스프링부트
- CRUD구현
- 정처기공부
- PYTHON
- CRUD
- 소프트웨어개발
- 게시판프로젝트
- 게시판
- spring
- Today
- Total
Helmi
스프링 부트 프로젝트 만들기 본문
1. Spring Boot Project 생성
1-1) spring initializr 사이트에서 템플릿 다운로드해 임포트 하는 방법.
애플리케이션에 필요한 의존성을 쉽게 추가할 수 있는 방법 제공하며 많은 설정을 수행
1-2) Spring Starter Project 이용
+) 의존성 주입 추가 방법
2. 빌드 도구
메이븐 : 자바 프로젝트의 빌드를 자동화해주는 빌드 툴.
개발 과정 중 많은 라이브러리들이 필요한데, pom/xml 파일에 필요 라이브러리 적어주면 메이븐이 알아서 네트워크 통해 다운로드 하고 경로까지 지정해줌. (없었다면 jar 파일들 일일이 받아 직접 넣어줘야 했음)
아래는 위의 의존성 주입 후 자동 생성된 라이브러리 목록 예시
<?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.7.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.shop</groupId>
<artifactId>shop</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>shop</name>
<description>Shop Project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
3. 설정 파일 (application.properties)
스프링 부트 애플리케이션 실행 시 사용하는 여러 설정 값들 정의하는 파일
1) 'src/main/resources' 폴더 아래 자동 생성 됨. 바로 설정 파일로 이용 가능. (만약 자동 생성 안되면 직접 생성해주어도 됨)
개발 환경, 테스트 환경, 운영 환경 따라 연결해야 할 데이터 베이스, port, debug level 등 나눠야 하면 다음 명명 규칙으로 설정 파일 만듬
application-{profile}.properties |
ex) application-dev.properties / application-prod.properties
server.port = 80
application.name = spring-demo
application.properites에 설정해 둔 값 자바 코드에 사용할 시 @Value 어노테이션 통해 읽어올 수 있음.
어노테이션(Annotation) : 주석. 메타데이터(데이터를 위한 데이터)라고도 불림. 클래스나 메소드, 변수 등 선언 시 '@' 붙여 사용. 컴파일러에 정보 알려주거나 실행 시 별도 처리 필요할 때 등 다양한 용도로 사용 가능. |
2) 애플리케이션 설정 파일 만드는 다른 방법으로 application.yml 파일 사용 가능.
장점 : 들여쓰기 통해 설정 값들 계층 구조 관리 가능해 가독성 향상
단점 : 문법이 좀 더 엄격
4. Hello World 출력
- com.example.SpringDemoApplication.java
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class SpringDemoApplication {
public static void main(String[] args) {
springApplication.run(SpringDemoApplication.class, args);
}
@GetMapping(value = "/")
public String HelloWorld() {
return "Hello World";
}
}
@RestController
Restful Web API를 좀 더 쉽게 만들기 위해 만듬. @Controller + @ResponseBody
클래스 이름 위에 @Controller 어노테이션 선언 시 해당 클래스 요청을 처리하는 컨트롤러로 사용
@ResponseBody
자바 객체를 HTTP 응답 본문의 객체로 변환해 클라이언트에게 전송. 따로 html 파일 만들지 않아도 웹 브라우저에 문자열 출력 가능
@GetMapping
클라이언트의 요청 처리할 URL 매핑.
'SpringBoot' 카테고리의 다른 글
상품 엔티티 설계 (0) | 2023.03.13 |
---|---|
쇼핑몰 프로젝트 생성 (0) | 2023.03.12 |
JPA란? (0) | 2023.03.07 |
@Lombok 어노테이션 정리 (0) | 2023.03.06 |
스프링 부트의 특징 (0) | 2023.03.06 |