728x90
반응형
spring initializr을 통한 프로젝트 만들기
spring initializr
https://start.spring.io/
Lombok
자바 라이브러리로 클래스 생성시 반복되는 getter, setter, equals, toString 등의 메서드 작성 코드를 어노테이션 기반으로 자동 생성해주는 라이브러리 입니다.
* 코드의 가독성을 높이고 개발의 생산성을 높일 수 있습니다. *
Spring Web
Spring MVC를 사용하여 RESTful을 포함한 웹 애플리케이션을 빌드합니다. Apache Tomcat을 기본 내장 컨테이너로 사용합니다.
Spring Security
Spring 애플리케이션을 위한 사용자 정의 가능한 인증 및 액세스 제어 프레임 워크로, Member 테이블의 비밀번호 필드를 암호화 하기 위해 사용합니다.
Spring Data JPA
Spring Data 및 Hibernate를 사용하는 Java Persistence API로 SQL 저장소에 데이터를 유지합니다.
MySQL Driver
MySQL JDBC 및 R2DBC 드라이버입니다.
추가적으로 동적 쿼리를 위한 QueryDSL과 로깅을 위한 slf4j를 추가할 것입니다.
두 라이브러리는 Spring에서 관리하지 않기 때문에 직접 코드를 추가할 것입니다.
이렇게 설정을 하고 다운로드 받은 후 IntelliJ에서 열 수 있습니다.
QueryDSL과 slf4j 설정
buildscript { //QueryDSL을 위해 추가
ext {
queryDslVersion = "5.0.0"
}
}
plugins {
id 'org.springframework.boot' version '2.7.1'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" //QueryDSL을 위해 추가
id 'java'
}
group = 'hooyn'
version = '0.0.1-SNAPSHOT'
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-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}" //QueryDSL을 위해 추가
implementation "com.querydsl:querydsl-apt:${queryDslVersion}" //QueryDSL을 위해 추가
implementation('org.slf4j:jcl-over-slf4j') //slf4j을 위해 추가
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'
}
tasks.named('test') {
useJUnitPlatform()
}
def querydslDir = "$buildDir/generated/querydsl" //QueryDSL을 위해 추가
querydsl { //QueryDSL을 위해 추가
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets { //QueryDSL을 위해 추가
main.java.srcDir querydslDir
}
compileQuerydsl{ //QueryDSL을 위해 추가
options.annotationProcessorPath = configurations.querydsl
}
configurations { //QueryDSL을 위해 추가
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
application.propertiest 설정
# MySQL에 대한 설정입니다.
spring.datasource.url=jdbc:mysql://localhost:3306/todo_db?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=Asia/Seoul
spring.datasource.username=hoyun
spring.datasource.password=**********
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# create: 기존테이블 삭제 후 다시 생성합니다. (DROP + CREATE)
# create-drop: create와 같으나 종료시점에 테이블을 DROP 합니다.
# update: 변경분만 반영합니다. (운영DB에서는 사용하면 안됩니다.)
# validate: 엔티티와 테이블이 정상 매핑되었는지만 확인합니다.
# none: 사용하지 않습니다. (사실상 없는 값이지만 관례상 none이라고 합니다.)
spring.jpa.hibernate.ddl-auto=create
# Hibernate가 DB에 날리는 모든 쿼리(DDL, DML)을 보여줍니다.
spring.jpa.properties.hibernate.format_sql=true
# 콘솔 창에 출력되는 로깅 메세지를 색으로 구분해서 출력해줍니다.
spring.output.ansi.enabled=always
# 로그 메세지가 저장되는 로그 디렉터리
logging.file.path=logs
# TRACE :추적 레벨은 Debug 보다 좀더 상세한 정보를 나타냅니다.
# ERROR : 요청을 처리하는 중 문제가 발생한 경우를 나타냅니다.
# WARN : 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타냅니다.
# INFO : 상태변경과 같은 정보성 메시지를 나타냅니다.
# DEBUG : 프로그램을 디버깅하기 위한 정보를 지정합니다.
# TRACE : 추적 레벨은 Debug 보다 좀더 상세한 정보를 나타냅니다.
# logging.level.{패키지 경로}를 통해 로깅 레벨을 결정할 수 있습니다.
logging.level.com.tutorial.springboot=TRACE
한글 깨짐 현상 해결
https://dorudoru.tistory.com/2156
IntelliJ를 프로그램 종료 후 재시작 하면 다시 '???' 로 변경되어 있어서 변경되는 부분에 대한 해결
https://velog.io/@ehdrms2034/Spring-Application.properties-%ED%95%9C%EA%B8%80%EA%B9%A8%EC%A7%90
728x90
반응형
'Project > Todo' 카테고리의 다른 글
[AWS EC2 ubuntu] 서버 초기 설정, MySQL 설정 (0) | 2022.07.12 |
---|---|
[AWS EC2 ubuntu] WinSCP와 PuTTY를 이용해서 EC2 인스턴스 접속 (0) | 2022.07.11 |
[AWS EC2 ubuntu] 인스턴스 생성과 보안 그룹 설정 (0) | 2022.07.10 |
[Spring Boot] Member 서비스 구현 (1) (0) | 2022.07.09 |
[기획 및 설계] 프로젝트 테이블 설계 및 예상 API (0) | 2022.07.07 |