wiki

김효준·2023년 11월 14일
0

수업정리

목록 보기
17/41

Wiki 20231114

Spring web

스프링 이니셜라이져로 하는법

3.1.5 안정 버전

프로젝트 세팅

Optimize Imports on fly
Gradle build -intellij로 세팅 그 밑에것도
File encoding UTF-8 세팅
Build project automatically 체크
Application.properties 파일 .yml로 바꾸기
문법이 두개가 잇다 프로퍼티스랑 yml
프로퍼티스는 server.port=8020
Server.file.uplodaSize=3m

yml은
Server:
Port: 8020
File:
uploadSize: 3m
위의 방식이랑 똑같지만 키보딩을 덜 하는 장점이 있다.

Port: 뛰어쓰기 두칸

클래스를 만들고 객체화 시키지 않는 클래스들이 있는데 그건 스프링이 적재적소에 사용한다.

devtools

package com.ll.sb20231114;
스프링 어플리케이션이 여기 안에것만 인식한다

클래스명 각 단어 첫글자 대문자로!

어노테이션

주석, @Controller 등

@Controller //컨트롤로인것을 스프링에게 명시
@ResponseBody //이 함수의 리턴 값을 그대로 브라우저에 출력하라는 의미
@GetMapping("/about") //about으로 들어오는걸 매핑
@AllArgsConstructor
//모든 필드를 아규먼트로 받는 생성자

primitive 타입

int 널 허용 X
Integer 널 허용

url은 무조건 문자열이다

    @GetMapping("/calc10")
    @ResponseBody
    Person2 showCalc10(
            String name, int age
    ){
        Map<String, Object> personMap =Map.of(
                "name", name,
                "age", age
        );
        return new Person2(name, age);
    }

Object로 한 이유 name age가 각각 Stirng age형이기 때문에 그보다 큰 범주인 Object로 한다

자바
리스트 가변
배열 불변

함수 리턴 -> 브라우저
함수리턴 -> 스프링부트 번역 -> 브라우저
문자열(json) 객체
150 -> "150"

익명 클래스 정리

class person(){
person(){
// 얘가 생성자
}
}

여기서 익명클래스라면
class (){
(){
// 얘가 생성자
}
}
이렇게 없애주고 ()도 없앰
class (){
{
// 얘가 생성자
}
}

커맨드 옵션 u 가 html창 바로보기

"\"" -> " 표현

StringBuilder 로 어펜드 해준다.
문자열 불변성

리스폰스 바디 안붙이면
src/main~~templates + 여기 + .html
스프링부트와 개발자와의 약속 룰이다.

Model

html 빈칸에다 채우고 싶으면 모델을 써라

    @GetMapping("/calc21")
    //calc21.html에 v1 v2 타임리프로 정의됨
    //모델은 알아서 처리해줌
    String showCalc21(Model model) {
        model.addAttribute("v1","v1값");
        model.addAttribute("v2","v2값");
        return "calc21";
    }

calc21.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>calc21</title>
</head>
<body>
  <div>
    <input type="text" placeholder="내용" th:value="${v1}">
  </div>
  <div>
    <input type="text" placeholder="내용" th:value="${v1}">
  </div>
</body>
</html>

컨트롤러는 주제에 맞게 적절하게 분리한다

GET /article/write

글쓰기 버튼

GET /article/doWrite

제너릭
T 빈칸이라고 생각해라
어떤 클래스는 미완성일때가 좋은거다~


어떤 오브젝트가 들어올지 모를때
넣을때는 좋은데 뺄때 형변환 해야하는 Object대신 나옴

1개의 댓글

comment-user-thumbnail
2023년 11월 14일

감사합니다. 이런 정보를 나눠주셔서 좋아요.

답글 달기