Spring Boot - 부트페이 (3) 파일 구조, gradle, yml

ysh·2023년 10월 3일
0

인턴십

목록 보기
8/25
post-thumbnail

Spring Initializr

파일 구조

  • java 파일들은 솔직히 위치는 상관없을 듯 하고 파일 구조도 개인 마다 다르니 참고로만,
    이름들도 딱히 상관 없을 듯 하다. 나중에 클래스 선언 때 맞춰서 쓰기만 하면 되니

  • ResponseDTO.java
    응답 데이터를 구조화 해놓음.

  • 컨트롤러와 서비스는 데이터를 반환하기 떄문에 api로 이름 설정

  • ReqBootpayConfirmDTO, ReqOrderSaveDTO.java
    각각 프론트에서 승인 요청, 승인 요청 전 DB 저장 요청을 처리할 때 받을 데이터를 담을 DTO

  • OrderEntity, OrderRepository.java
    Order 테이블을 만들고 Jpa를 통해 테이블 생성, 데이터 저장 등 실행

  • index.html
    기본 페이지

build.gradle

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.4'
	id 'io.spring.dependency-management' version '1.1.3'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
    // 이거 추가
    implementation 'org.springframework.boot:spring-boot-starter-validation'
	implementation 'io.github.bootpay:backend:+'
    
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

application.yml

application.properties를 yml로 바꿔줬다.
DB를 사용하기 때문에 그에 따른 설정을 해줘야 한다.

spring:
  thymeleaf:
    cache: false # 이전 데이터 캐싱되어 수정 안될 수 있음
  datasource:
    url: jdbc:h2:mem:testdb;MODE=MySQL;DB_CLOSE_DELAY=-1 # memory에 저장 속도는 빠른데 서버 재시작 시 데이터 날아감
    driverClassName: org.h2.Driver # 인터넷 검색
    username: sa
    password:
  h2:
    console:
      enabled: true # 자체 콘솔 존재
      path: /h2
  sql:
    init: # 서버가 켜질 때 들어갈 데이터
      encoding: UTF-8
#      schema-locations: classpath:h2/schema.sql
      # dataLocations: classpath:sql/data.sql
      mode: always
  jpa: 
    defer-datasource-initialization: true # 위의 init에서의 데이터가 들어갈 때까지 기다림
    open-in-view: false # 트랜잭션 범위 밖에서 영속성 컨텍스트를 유지할지 여부
    database-platform: org.hibernate.dialect.H2Dialect # 어느 형식의 DB를 쓸 지 결정
    hibernate: # 
      ddl-auto: create # create-drop, update, validate, none / # 
      naming: # 이름 전략
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
        implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
    show-sql: true # sql 보이게
    properties:
      hibernate:
        format_sql: true # sql 정렬 설정
        use_sql_comments: true
  servlet:
    multipart:
      max-request-size: 10MB
      max-file-size: 10MB
profile
유승한

0개의 댓글

관련 채용 정보