ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Boot] Lombok
    Spring/Boot 2022. 9. 10. 20:45

    Lombok: Annotation 기반으로 반복되는 getter, setter와 같은 코드를 자동완성 해주는 라이브러리

    다운로드 후 파일 실행. 커멘드창 이용 시 설치된 경로를 입력 후 java -jar lombok.jar를 입력 후 실행

     

    프로젝트 생성 시 lombok 체크

     

    build.gradle

    plugins {
    	id 'org.springframework.boot' version '2.7.2'
    	id 'io.spring.dependency-management' version '1.0.12.RELEASE'
    	id 'java'
    }
    
    group = 'com.ecl'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'
    
    repositories {
    	mavenCentral()
    }
    
    dependencies {
    	implementation 'org.springframework.boot:spring-boot-starter-web'
    	compileOnly 'org.projectlombok:lombok'
    	annotationProcessor 'org.projectlombok:lombok'
    	testImplementation 'org.springframework.boot:spring-boot-starter-test'
    	implementation 'javax.servlet:jstl'
        implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
    }
    
    tasks.named('test') {
    	useJUnitPlatform()
    }
     

    application.properties

    # Server port
    server.port=8070
    
    # about JSP 
    spring.mvc.view.prefix=/WEB-INF/views/
    spring.mvc.view.suffix=.jsp
     

    src\main\java\com\ecl\g05\Member.java

    lombok을 사용하면 getter, setter를 할 필요가 없다

    package com.ecl.g05;
    
    import lombok.Data;
    
    @Data
    public class Member {
    	private String id;
    	private String name;	
    }
     

    src\main\java\com\ecl\g05\LombokController

    package com.ecl.g05;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class LombokController {
    
    	@RequestMapping("/")
        public String root() throws Exception{
            return "testForm";
        }
    	
    	@RequestMapping("/test1")
        public String test1(@ModelAttribute("member") Member member, Model model){
        	System.out.println(member.getId() + " " + member.getName());
            return "test1";       
        }
    }
    
     

    src\main\webapp\WEB-INF\views\testForm.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>testForm.jsp</title>
    </head>
    <body>
    <body>
    
    <form action="test1">
    	<table border="1" cellspacing="0">
    		<tr><th>아이디</th><td><input type="text" name="id"/></td></tr>
    		<tr><th>이름</th><td><input type="text" name="name"/></td></tr>
    		<tr><td colspan="2" align="center">
    			<input type="submit" value="전송"/></td></tr>
    	</table>
    </form>
    
    </body>
    </body>
    </html>

    src\main\webapp\WEB-INF\views\test1.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <body>
    
    <h1><% out.println("#Hello Lombok");%></h1>
    <h1>당신의 아이디는 ${member.id} 입니다.</h1>
    <h1>당신의 이름은 ${member.name} 입니다.</h1>
     
    </body>
    </body>
    </html>

     

    'Spring > Boot' 카테고리의 다른 글

    [Boot] Transaction  (0) 2022.09.10
    [Boot] MyBatis  (0) 2022.09.10
    [Boot] JDBC  (0) 2022.09.10
    [Boot] Validation  (0) 2022.09.10
    [Boot] Gradle  (0) 2022.09.10

    댓글

Designed by Tistory.