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: 뛰어쓰기 두칸
클래스를 만들고 객체화 시키지 않는 클래스들이 있는데 그건 스프링이 적재적소에 사용한다.
package com.ll.sb20231114;
스프링 어플리케이션이 여기 안에것만 인식한다
클래스명 각 단어 첫글자 대문자로!
주석, @Controller 등
@Controller //컨트롤로인것을 스프링에게 명시
@ResponseBody //이 함수의 리턴 값을 그대로 브라우저에 출력하라는 의미
@GetMapping("/about") //about으로 들어오는걸 매핑
@AllArgsConstructor
//모든 필드를 아규먼트로 받는 생성자
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
스프링부트와 개발자와의 약속 룰이다.
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대신 나옴
감사합니다. 이런 정보를 나눠주셔서 좋아요.