lombok 세팅법
pom.xml 에서 라이브러리 넣으면 자동으로 다운로드가 되는 폴더
: maven이 관리하는 라이브러리들이 저장돼있음
c 드라이브 - 사용자 - 사용자 이름 폴더 - .m2 - repository
pom.xml 에 다운받은 롬북 라이브러리 확인
(스프링 부트 툴을 끄고 롬북 세팅)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
롬북이 저장되어 있는 폴더로 이동
c 드라이브 - 사용자 - 사용자 이름 폴더 - .m2 - repository - org - projectlombok - lombok - 최신버전 클릭
우클릭 Git Bash here
끝에 .jar 를 붙인다
** lombok 칠때 tab키 누르면 자동완성 됨.
sts가 설치된 폴더에 스프링 부트 설치파일 선택하고 설치
스프링 부트 툴 다시 열기!
@Data , @AllArgsConstructor , @NoArgsConstructor
Member 클래스에 생성자와 getter,setter 생성자 지우고 @Getter, @Setter 어노테이션 붙이면 된다.
@Getter,@Setter 한번에 만들고싶으면 @Data 어노테이션만 쓰면 된다
생성자는 @AllArgsConstructor 어노테이션
빈생성자는 @NoArgsConstructor 어노테이션
yml 세팅법
application.yml 에 모두 지우고 붙여쓰기
server:
port: 8000
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
username: cos
password: cos1234
jpa:
open-in-view: true
hibernate:
ddl-auto: create
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate.format_sql: true
jackson:
serialization:
fail-on-empty-beans: false
이 부분을 설명하자면
port: 8000
servlet:
context-path: /blog // 프로젝트 진입점
▶ url : localhost:8000/blog~
8080으로 쓰거나 프로젝트 진입점인 /blog 를 생략했다면 404 에러가 뜬다.
테스트해보기
@Controller
public class TempControllerTest {
// http://localhost:8000/blog/temp/home
@GetMapping("/temp/home")
public String tempHome() {
System.out.println("tempHome()");
// 파일리턴 기본경로 : src/main/resources/static
// 리턴명 : /home.html
// 풀경로 : src/main/resources/static/home.html
return "/home.html";
}
}
- @Controller 어노테이션은 tempHome() 메서드의 파일을 리턴한다. ▷ "/home.html";
- @RestController 는 데이터를 리턴한다. ▷ return "test 완료"; (문자자체를 리턴)
파일을 리턴할때 경로는?
파일리턴 기본경로 : src/main/resources/static 안에 있는 파일을 리턴
리턴명 : /home.html
= 풀경로 : src/main/resources/static/home.html
만약 리턴명 앞에 / 슬러시를 안붙인다면 ▷ return "home.html";
src/main/resources/statichome.html 붙여진다.
템플릿 엔진을 html 말고 jsp 파일을 리턴할건데 스프링부트는 jsp를 지원하지 않아서
pom.xml 에 jsp템플릿 엔진 설치해야 jsp동작이 됨
파일 리턴 기본경로인 static 폴더는 정적파일만 놓기때문에 브라우저가 인식할 수 있는 파일.
static 폴더에 이미지파일을 저장했을때? 사진은 브라우저가 인식가능하여 파일을 찾아준다.
@GetMapping("/temp/img")
public String templmg() {
return "/a.png";
}
** localhost:8000/temp/img
그렇다면 static 폴더에 test.jsp파일을 저장했을때? 오류가 난다
jsp는 [동적인 파일 = java파일] 컴파일이 일어나야하는 파일이라 브라우저가 인식불가능!
그럼 jsp 파일은 어디에 저장을 해야하나?
▼
* main에 우클릭 - new Folder - webapp/WEB-INF/views
@GetMapping("/temp/jsp")
public String tempJsp() {
// prefix(맨앞에 붙이는 경로경위): /WEB-INF/views/
// suffix(맨뒤): .jsp
return "test";
}
** return "/test"; 해도 알아서 처리는 해줌
appolication.yml 에 설정해둔 기본 경로로 test.jsp 파일로 리턴이 되고
톰캣이 해당파일을 컴파일하여 html로 웹브라우저가 읽을 수 있게 해준다.
[ appolication.yml ] 에 설정해둔 기본 경로
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
prefix : 맨 앞에 붙이는 경로경위
suffix : 맨 뒤에 붙이는 경로경위
리턴 시 풀네임은 /WEB-INF/views/test.jsp
만약 return "test" 를 ▷ return "/test.jsp"; 로 리턴했다면
풀네임 : /WEB-INF/views//test.jsp.jsp
'공부' 카테고리의 다른 글
정합성 문제 | DB의 격리수준 | 스프링부트의 트랜잭션 (0) | 2022.11.07 |
---|---|
STS4 툴에서 JSP , HTML , CSS 확장자 파일 없을 때 해결법 (0) | 2022.11.05 |
HTTP | stateless ,stateful | MIME 타입 (0) | 2022.11.01 |
자바의 객체지향 | http 요청 실습 (0) | 2022.11.01 |
스프링부트 기본 개념들 (1) | 2022.08.16 |