STS설치하기
https://spring.io/tools
UTF-8 설정, JRE 1.8 버전 확인
Spring Boot 구조
Junit5 테스트
상위 com패키지에 Application.java파일을 옮긴후 어느 테스트 패키지에서나 Test가 가능하다
MockMvc를 이용한 테스트
package com.day.control;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.ResultMatcher;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@WebMvcTest(SampleController.class)
class SampleControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
void test() throws Exception {
MockHttpServletRequestBuilder requestBuilder;
requestBuilder = MockMvcRequestBuilders.get("/hello");
requestBuilder.accept(MediaType.APPLICATION_JSON);//요청양식
ResultActions resultActions = mockMvc.perform(requestBuilder);//요청테스트
ResultMatcher matcher = MockMvcResultMatchers.status().isOk();
resultActions.andExpect(matcher);
}
}
Spring application.properties 우선순위
Logger설정
application-dev.properties 코드 내용
rver.port=9999
server.servlet.context-path=/dmlogback
#logger level
logging.level.root=warn
#기본적으로 Spring Boot log는 console 만 log를 처리
#절대 경로로 표현되거나 현재 경로의 상대 경로로 로그 파일명을 지정한다.
#logging.file.name=.file=./log/my.log
#logging.file의 값이 없을 때 동작한다. 지정된 경로에 spring.log로 로그를 남긴다.
logging.file.path=./log
#로그 파일의 사이즈가 지정된 임계치를 초과하면 파일명에 index를 추가한 후 새로운 파일을 작성한다.
logging.logback.rollingpolicy.max-file-size=1KB
logging.logback.rollingpolicy.max-history=1
logging.pattern.console=%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n
logging.pattern.file=%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n
logback-spring.xml으로 설정시
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<!-- 60초마다 설정 파일의 변경을 확인 하여 변경시 갱신 -->
<configuration scan="true" scanPeriod="60 seconds">
<!-- Console Appender -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- <pattern>${LOG_PATTERN}</pattern> -->
<pattern>%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n</pattern>
</encoder>
</appender>
<!-- File Appender -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 파일경로 설정 -->
<file>./log/my.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>UTF-8</charset>
<pattern>%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n</pattern>
</encoder>
<!-- Rolling 정책 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>./my.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 파일당 최고 용량 kb, mb, gb -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<root level="WARN">
<appender-ref ref="CONSOLE"/>
<!-- <appender-ref ref="FILE"/> -->
<!-- 파일 출력시 설정 -->
</root>
</configuration>
'KOSTA > SpringBoot' 카테고리의 다른 글
Spring Boot에서 CORS 적용해보기 (0) | 2021.08.13 |
---|---|
cascade , mappedBy, fetch (0) | 2021.08.12 |
SpringBoot - JPA(2) (0) | 2021.08.05 |
Spring - Qualifier설정, Repboard 병합, JPA (0) | 2021.08.04 |
Spring Boot - Mybatis 설정 (0) | 2021.08.03 |