스프링 입문 강의 정리
스프링에서 Spring Boot , JPA , Hibernate, Gradle, Thymeleaf 등을 사용하며 입문할 예정
1. Spring 프로젝트 생성
# Java 8이상 (11 권장)
https://crazykim2.tistory.com/478
# IntelliJ 나 Eclipse 베이스로
https://goddaehee.tistory.com/195 (유료)
https://www.eclipse.org/downloads/ (무료)
# h2db 다운 (최신버전이 아닌 , 1.4.2 버전으로 강의)
https://www.h2database.com/html/download-archive.html
# Spring 프로젝트
start.spring.io 에서 프로젝트를 기본적으로 다운받을 수 있다.
프로젝트 : Maven / Gradle (최신 빌드법 Gradle 권장, 빠르고, 테스트에 최적)
언어 : Java / Kotlin / Groovy (java)
Boot버전 : SNAPSHOT은 개발중인것이므로 제외하여 최신버전으로 2.4.0
메타Data : Group - 기본 패키지명 (com.example.bang 이런식)
Artifact - 빌드 결과물명 (hello-spring)
name - hello-spring
Dependencies - 웹 프로젝트인 경우 (Spring web, Themeleaf 등)
https://start.spring.io/ 홈페이지에서 설정후 다운받아 import해도 되며,
이클립스에서 Spring Started Project로 아래와 같이 설정하여 만들어도 된다
참고로 이클립스에서 Spring프로젝트를 만들기 위해서는 Marketplace에서 Spring Tools를 설치해야한다.
프로젝트 생성시 생각보다 시간이 많이 소요된다.
기다리다 보면 아래와같이 프로젝트 파일들이 만들어진다.
2. Spring Boot 웹 서버 실행
필자는 인텔리J가 없어 , Eclipse로 강의를 따라간다.
프로젝트를 생성하여 Run하는 경우,
기본클래스를 찾을 수 없는 에러가 발생한다면, 프로젝트에 빌드Path를 확인하자.
필자는 8버전을 사용하다가 11버전을 다운받아 이클립스에서 추가로 아래와같이 변경을 해주었다.
프로젝트를 수행하면 기본적으로 main 메소드를 찾아 수행시킨다.
Spring Web 패키지에 내장된 Tomcat서버가 실행되면서 8080 포트로
서버가 뜬다.!
3. 도메인 개발
도메인은 웹 화면을 접속하는 경로를 가리키기도 하지만,
웹개발에서의 해당 정적 페이지 개발을 가리키기도 한다.
기본적으로 웹서버는 src / resources / static 에서 찾으며, index.html을 기본적으로 찾는다.
이러한 정적 웹페이지가 아닌
Thymeleaf 엔진을 이용해
다양한 데이터를 다루는 동적 웹을 개발해보자!
1) 동적 웹페이지 생성
src / main / resources / templates 밑에 hello라는 html 페이지를 만든다.
서버를 재기동해보면, html을 붙이지 않고 해당 페이지에 들어감을 알수있다.
2) 컨트롤러 생성
메인 java 파일이 있는곳에 , 컨트롤러 패키지와 컨트롤러.java 파일을 만든다.
import는 어노테이션을 붙이면 자동으로 붙으니 신경쓰지말고,
@에 주의하여 작성한다.
@GetMapping에 적어주는게 동적 웹페이지 명이다. 모델로 받아서 data 속성에 값을 넣어 return한다.
4. 프로젝트 빌드
해당 폴더에서 cmd를 키고 들어가
gradle build 해주면, build 폴더가 생성되며, libs 안에 jar가 생성된다.
실행시
해당 경로에서
java -jar 파일명 해주면 실행이된다.
소스코드
https://github.com/bangbangu4/Spring-intro
'Study > Java Spring Boot' 카테고리의 다른 글
[Spring] 스프링 입문6 - DB 접근기술(JDBC, JdbcTemplate, JPA, SpringJpa) (0) | 2022.01.14 |
---|---|
[Spring] 스프링 입문5 - 회원 웹 화면 (0) | 2022.01.14 |
[Spring] 스프링 입문4 - Bean 등록법 (0) | 2022.01.14 |
[Spring] 스프링 입문3 - 회원 서비스 개발 (0) | 2022.01.14 |
[Spring] 스프링 입문2 - 정적웹, MVC, API (0) | 2022.01.07 |