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

 

 

 

반응형
LIST

+ Recent posts