반응형

스프링


스프링은 자바의 웹 프레임워크이다.

자바로 다양한 앱을 만들기 위한 프로그래밍 툴

 

thymeleaf : html 템플릿 엔진

 

.idea : intellij가 사용하는 설정파일

 

gradle : gradle관련 폴더

 

src : main, test가 있음 main이랑 test가 나뉘어져있음

main밑에 가면 자바랑 리소스(실제 자바코드파일을 제외한 어떤 xml, properties, 설정파일, html등)가 있음, 자바 밑에 실제 소스파일

test는 테스트코드들과 관련된 소스들이 있음

테스트코드가 중요하단 소리 요즘 개발 트렌드

 

build.gradle 이 중요

버전설정, 라이브러리 땡겨옴

plugins {
   id 'org.springframework.boot' version '2.5.4'
   id 'io.spring.dependency-management' version '1.0.11.RELEASE'
   id 'java'
}

group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11' //자바 11버전

repositories {
   mavenCentral() //mavencentral싸이트에서 라이브러리를 다운받음
}

//라이브러리들
dependencies {
   implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'//thymeleaf
   implementation 'org.springframework.boot:spring-boot-starter-web'//web
   testImplementation 'org.springframework.boot:spring-boot-starter-test'
   //테스트라이브러리가 자동으로 들어감 
}

test {
   useJUnitPlatform()
}

 

.gitignore

깃에는 필요한 소스코드만 올라감, start.spring.io에서 관리해줌

 

gradlew

gradlew.bat

 

settings.gradle

 

 

 

콘솔로 빌드 하기

해당 디렉토리로 이동후 "gradlew.bat build" 입력

image-20210928173216290

cd build

cd libs

java -jar hello-spring-0.0.1-SNAPSHOT.jar

image-20210928173505805image-20210928173523377

 

서버배포시 "hello-spring-0.0.1-SNAPSHOT.jar" 파일만 복사해서 옮기고 실행하면 된다.

그러면 서버에서 스프링이 동작하게 된다.

 

"gradle clean" or "gradle clean build" 명령어 입력시 build폴더가 없어진다.

 

 

스프링 웹 개발 기초


정적 컨텐츠 : 파일을 그대로 웹브라우저에 내려줌. 그냥 파일을 그대로 전달해줌

MVC와 템플릿 엔진 : 가장많이 하는 방식, (jsp, php 등 템플릿 엔진), 서버에서 프로그래밍해서 동적으로 웹브라우저에 내림, 서버에서 변형을 해서 전달해줌

API : json데이터 포맷으로 클라이언트에게 데이터를 전달해줌, 뷰나 리액트에서 사용(데이터만 주면 화면은 클라이언트가 알아서 그림), 서버끼리 통신할때(데이터만 왓다갓다)

 

 

- 정적컨텐츠

image-20210928174256185

resources/static 폴더 안 아무 html파일 하나 생성후 작성

image-20210928174427627

정적파일이 그대로 반환이 됨.

따로 프로그래밍을 할 수는 없다.

 

thymeleaf엔진은 서버없이 html파일을 열어볼 수 있음

image-20210930220333376image-20210930220344251

 

 

image-20210930220846830

동작하지 않음

 

2021-09-30 22:08:36.038 WARN 3676 --- [nio-8080-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'name' for method parameter type String is not present]

"Required request parameter 'name' for method parameter type String is not present" 임

 

image-20210930221110958image-20210930221354214

변환된 html이 넘어간다.

템플릿 방식은 뷰가 있고 거기서 화면을 조작함

 

 

api사용법

@GetMapping("hello-string")
    @ResponseBody //http에서 body부분의 데이터를 직접 넣어주겟다 라는 뜻
    public String helloString(@RequestParam("name") String name){
        return "hello" + name;//문자가 그대로 내려감,
        // 템플릿 엔진과의 차이점은 뷰 엔진이 없고 문자가 그대로 내려감

    }

 

http://localhost:8080/hello-string?name=string!!!

image-20210930221801049image-20210930221809163

문자만 그대로 내려감

728x90
반응형

'공부 > Spring' 카테고리의 다른 글

회원관리 예제 - 회원도메인, 리포지토리, 테스트케이스  (0) 2021.10.20
자바 - Map  (0) 2021.10.19
자바 - Set  (0) 2021.10.18
자바 - 컬렉션(List)  (0) 2021.10.15
자바 - 제네릭  (0) 2021.10.14
블로그 이미지

아상관없어

,