지난 포스트에 이어서
이 포스트에서는 이클립스를 사용하여 Spring boot 프로젝트를 생성한 후 필요한 설정을 정리했습니다.
1. Java EE 플러그인 설정
저는 브라우저 화면에 띄울 페이지를 JSP로 만들것이기 때문에 Java EE의 개발환경이 필요합니다.
이전에 작성한 Java개발환경 설정 포스팅에서 설치한 STS에서는 Java EE 플러그인이 따로 설치되어 있지 않으므로
Java EE플러그인을 설치해줍니다.
※ 설치방법
이클립스의 상단메뉴 에서 'Help' -> 'Eclipse Marketplace...'클릭
Java EE로 검색하여 플러그인을 설치하면 됩니다.
2. 이클립스 워크스페이스 인코딩 설정
한글이나 일본어 문자가 깨지는 것을 막기 위해 워크스페이스와 파일의 기본 인코딩을 UTF-8로 바꿔주면 편합니다.
※ 워크스페이스 인코딩 설정
- 이클립스의 상단메뉴 에서 'Window' -> 'Preferences'클릭
- 'General' -> 'Workspace'클릭
- 'Text file encoding'을 UTF-8로 설정합니다.
※ 파일의 인코딩 설정
- 이클립스의 상단메뉴 에서 'Window' -> 'Preferences'클릭
- 'General' -> 'Content Type'클릭
- 'Content types'에서 'Text'하위의 'Java Source File', 'JSP'을 각각 클릭한 후
Default encoding을 UTF-8로 설정합니다.
※ Default encoding란에 인코딩 타입을 입력한 후 우측의 'Update'를 클릭해준후 Apply and close 합니다.
3. Log4j2설정
spring boot의 기본 로그 설정은 logback으로 되어 있으므로 로그 설정을 Log4j2로 변경합니다.
기본 설정이 아닌 Log4j2를 사용하는 이유는 훨씬 더 성능이 좋기 때문이다.
※ 설정 방법
1) build.gradle에 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.10.3'
2) build.gradle에서 기본 로그 설정 제외시키기
configurations {
all*.exclude module : 'spring-boot-starter-logging'
}
3). xml 작성
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" monitorInterval="30">
<Properties>
<Property name="LOG_FORMAT">%d{yyyy-MM-dd HH:mm:ss} %p %m%n</Property>
<Property name="BASE_DIR">C:\\Users\\leeyoungseung\\project_source\\item-admin\\logs</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_FORMAT}"/>
</Console>
<RollingFile name="File"
fileName="${BASE_DIR}/item-admin.log"
filePattern="${BASE_DIR}/item-admin.%d{yyyyMMdd}.log">
<PatternLayout pattern="${LOG_FORMAT}"/>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${BASE_DIR}">
<IfFileName glob="*.log" />
<IfLastModified age="30d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File" />
</Root>
</Loggers>
4. Lombok설정
생성자, getter, setter메서드를 자동으로 생성해주는 편리한 라이브러리인 Lombok을 설정합니다.
개발하면서 VO, DTO의 변수명이 변경될 일이 생길 때 getter, setter메서드를 따로 수정할 필요가 없으므로 상당히 유용합니다.
1) build.gradle에 의존성 추가
annotationProcessor 'org.projectlombok:lombok:1.18.6'
compileOnly 'org.projectlombok:lombok:1.18.6'
2) STS의 실행파일이 있는 경로에 lombok.jar를 위치한 후, lombok.jar를 실행하여 설치해줍니다.
lombok을 적용할 이클립스를 선택 후 Install 클릭하여 설치합니다.
3) 이클립스 재시작
※ lombok 적용이 안될 경우 1) F5로 refresh 2) Close Project, Open Project를 해볼 것
5. property 설정
property에는 view의 경로 설정과 DB커넥션, jpa의 옵션을 설정했습니다.
# MVC VIEW
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# DB Connection
spring.datasource.url=jdbc:mysql://localhost:3306/board_test?serverTimezone=UTC&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=1234
# jpa
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLInnoDBDialect
# spring.jpa.hibernate.ddl-auto= update
#logging.level.org.hibernate.type.descriptor.sql=tracespring.jpa.show-sql=true
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
logging.level.org.hibernate.type.descriptor.sql=trace
6. build.gradle설정
회사에서 Java 프로젝트의 빌트 툴로 Maven보다는 Ant와 Gradle을 주로 사용하고 있기에 Gradle을 사용하기로 했습니다.
build.gradle파일은 라이브러리 의존성을 기술하거나, 빌드 시의 옵션이나 원하는 task를 추가할 수 있는 설정 파일입니다.
※ gradle은 버전에 따라서 뭔가 바뀌는 게 많으니 복붙 할 때는 자신이 설치한 Gradle의 버전을 확인하시기 바랍니다.
plugins {
id 'org.springframework.boot' version '2.5.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
apply plugin: 'eclipse'
apply plugin: 'war'
group = 'com.item'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
configurations {
all*.exclude module : 'spring-boot-starter-logging'
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation group: 'org.lazyluke', name: 'log4jdbc-remix', version: '0.2.7'
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.10.3'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
runtimeOnly 'mysql:mysql-connector-java'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl:1.2'
annotationProcessor 'org.projectlombok:lombok:1.18.6'
compileOnly 'org.projectlombok:lombok:1.18.6'
implementation group: 'org.webjars', name: 'jquery', version: '3.6.0'
implementation group: 'org.webjars', name: 'bootstrap', version: '4.6.0'
}
test {
useJUnitPlatform()
}
ext.profile = (!project.hasProperty('profile') || !profile) ? 'dev' : profile
sourceSets {
main {
resources {
srcDirs "src/main/resources/*", "src/main/env/${profile}"
}
}
}
'프로그래밍 > Springboot-토이프로젝트' 카테고리의 다른 글
Springboot로 구현한 API의 Response 데이터를 XML로 받아오기 (0) | 2021.09.26 |
---|---|
Springboot + JQuery Ajax로 CRUD 어플리케이션 구현-05【AWS EC2에 배포 + AWS RDS(MariaDB) 연동】 (0) | 2021.06.07 |
Springboot + JQuery Ajax로 CRUD 어플리케이션 구현-04【화면 + Jquery Ajax통신】 (0) | 2021.06.06 |
Springboot + JQuery Ajax로 CRUD 어플리케이션 구현-03【CRUD API구현】 (0) | 2021.06.06 |
Springboot + JQuery Ajax로 CRUD 어플리케이션 구현-01【설계】 (0) | 2021.06.05 |
댓글