Spring Boot - 0

유호준·2021년 4월 5일
0

Spring Boot

목록 보기
1/7

Spring Framework 시리즈에서 했던 프로젝트를 Spring Boot 프로젝트로 변경합니다.


Spring Boot

Spring BootSpring Framework에서 개발자가 해야했던 설정을 자동으로 해주고, WAS에 종속적인 Spring Framework과 달리 내장 Tomcat을 사용해 개별적인 애플리케이션으로 사용 가능합니다.

프로젝트 생성


Spring BootGradle을 사용해 빌드하겠습니다.

원하는 라이브러리를 선택합니다.


자동으로 생성된 src폴더를 지웁니다. 그리고 build.gradle을 다음과 같이 변경합니다.

plugins {
    id 'org.springframework.boot' version '2.4.4'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}


allprojects {

    group = 'ac.kr.smu'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'

    apply plugin: 'java'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'

    configurations {
        developmentOnly
        runtimeClasspath {
            extendsFrom developmentOnly
        }
        compileOnly {
            extendsFrom annotationProcessor
        }
    }

    repositories {
        mavenCentral()
    }
    
    test {
    useJUnitPlatform()
    }
    
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        implementation 'org.springframework.boot:spring-boot-starter-hateoas'
        implementation 'org.springframework.boot:spring-boot-starter-security'
        implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
        compileOnly 'org.projectlombok:lombok'
        runtimeOnly 'mysql:mysql-connector-java'
        annotationProcessor 'org.projectlombok:lombok'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
        testImplementation 'org.springframework.security:spring-security-test'
    }
}

이번 프로젝트는 멀티 프로젝트로 만들겁니다. 우리가 지금은 프로젝트 하나만 구현했지만 후에 MSABatch여러 개의 프로젝트를 만들 수도 있습니다. 거기에 사용되는 공통된 코드를 여러번 구현하는 것이 아니라 분리하여 구현합니다.

Module을 새로 만듭니다.



같은 방법으로 SpringBoot-Domain 모듈도 만듭니다. 이 모듈은 domainrepository를 구현할 모듈입니다. 이 모듈에서는 testresources는 필요없으므로 삭제합니다. 그리고 SpringBoot-API 모듈의 resources 폴더에 static, templates폴더와 application.yml을 생성합니다.


설정

설정은 application.yml에서 하면됩니다. 우리는 spring-boot-starter-data-jpa를 넣었으므로 반드시 DB와 연결해야합니다. Spring Boot는 다른 설정을 하지 않으면 hikariCP를 사용해 커넥션풀로 DB에 연결합니다.

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: "jdbc:mysql://localhost:3306/springboot"
    username: "spring"
    password: 1111

springboot database를 생성하고 권한을 부여하고 합니다.


BoardApplication 클래스 생성

BoardApplication 클래스를 생성합니다. @SpringBootApplication Annotation은 자동설정과 @ComponentScan이 합쳐져있는 Annotation입니다. main 메소드에서 이 클래스를 실행함으로써 우리의 서버가 실행됩니다.

@SpringBootApplication
public class BoardApplication {
    public static void main(String[] args) {
        SpringApplication.run(BoardApplication.class,args);
    }
}


테스트

Main classBoardApplication으로 변경합니다.

Spring Security가 있어 자동으로 생성된 로그인 화면이 나오는 것을 확인할 수 있습니다.

0개의 댓글