Spring Boot 특징
어플리케이션마다 톰캣 서버가 내장되어 있음
-> 폴더 경로가 어플리케이션마다 다르므로 경로 조심
-> upload 경로는 절대 경로로 가지고 있어야 함
-> context root 가 없음 -> 루트에 / 달아야 함
탐색기에서 내 workspace에 프로젝트 폴더를 넣은 후
프로젝트 import할 때 gradle project로 가져와야함.
프로젝트 설정
서버 내장이므로 서버와 서버폴더 삭제
spring starter project로 새로 생성


필요한 것 선택 후 생성(반드시 사용할 것만 추가)
lombok -> getter setter 자동 추가
(lombok.jar 다운로드 후 C:\ldy\sts-bundle\sts-3.9.18.RELEASE(STS.ini가 있는 곳) 여기에 설치해줘야 한다
spring boot DevTools -> 서버 껐다가 킬 필요 없음
build.gradle 버전 수정 후 gradle > refresh gradle project
프로젝트 구조
src/main/java에 패키지 이미 만들어져 있음
src/main/resources 도 이미 만들어져 있음

main 밑에 webapp 폴더 직접 만들어야 함
build.gradle
(Maven의 pom.xml과 비슷)
프로젝트 버전 수정 및 dependencies 추가
jstl, jasper -> spring boot에서 jsp 사용하기 위해 추가
application.properties
(Maven의 servlet-context.xml과 비슷)
설정과 관련된 코드 작성, 포트 설정
작성하면 알아서 internal View Resolver에 자동으로 넣어줌
application.properties 와 application.yml 두가지 방식이 있음 -> 편한 걸로 사용
-> 아래 코드는 application.properties 방식
classpath는 src/main/java 또는 src/main/resources 의미
logging.level.hibernate.type.descriptor.sql=trace는 console에서 실제 sql문 볼 수 있고, 오류를 찾기 쉬워진다.

Controller
@GetMapping
@PostMapping
@ResponseBody
View대신 data를 내려보내준다.
@RequestBody
json 형태를 dto 클래스(java 객체) 형태로 바꿔준다.
Dto
@Getter, @Setter, @ToString
자동으로 해당 메소드 만들어줌
@Data
getter, setter, toString 합침
@NoArgsConstructor
멤버변수 하나도 없는 생성자 알아서 만들어줌
@AllArgsConstructor
멤버변수 다 있는 생성자 알아서 만들어줌


@Builder
원하는 멤버변수만 초기화해서 생성자로 생성시킬 수 있다.(원하는 값만 넣은 생성자 사용가능)
src/test/java에 있는 ApplicationTests.java에서 builder()를 통해 생성하고 해당 파일 또는 함수만 Run as > jUnit Test로 테스트 해볼 수 있다.

초록색 바가 다 돌아가면 테스트가 잘 된 것이다.
Dao
@Mapper
implements 안 만들어도 매칭시켜줌
덕분에 interface에서 원래 객체 생성이 불가능하지만, 객체 생성하는 @Repository 사용 가능해짐
단, 함수 이름 반드시 같아야 하고, mapper.xml에 해당 dao 명시해야함
@Param
함수 이름은 같으나 파라미터 이름이 다르면 @Param으로 명시해줄 수 있다

아래와 같이 namespace로 반드시 설정해줘야 한다

Service
@RequiredArgsConstructor
service에서 dao 생성할 때 @Autowired 대신에 final 변수로 만들어 생성자에서 생성되도록 한 후 @RequiredArgsConstructor를 사용해서 자동으로 생성자에서 생성되게 한다
-> Controller에서도 사용

PostMan
벡엔드 테스트 프로그램
프론트엔드가 아직 나오지 않았거나 없는 경우 사용
'Project > Spring' 카테고리의 다른 글
| Spring Security 로그인 (1) | 2024.10.25 |
|---|---|
| JPA Query DSL (3) | 2024.10.22 |
| JPA Database (6) | 2024.10.16 |
| Mini Project을 Spring Frame Work로 변경하기 (1) | 2024.10.10 |
| Spring Frame Work(Maven) (2) | 2024.10.04 |