스프링부트에서는 @SpringBootTest 를 통해서 Application Test에 필요한 거의 모든 기능을 제공한다. 우선 사용하기 위해서는 의존성이 필요하다. org.springframework.boot spring-boot-starter-test test 그러면 다음과 같이 가장 기본적인 형태로 Test코드를 작성할 수 있다. @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) class SampleControllerTest { } @SpringBootTest 의 webEnviroment는 기본값으로 MOCK가 잡혀있는데, 이 경우는 서블릿 컨테이너를 띄우지 않고 MockU..
Spring Boot는 기본적으로 Commons Logging을 사용하는데, SLF4j도 사용가능 하다. 그러나 최종적으로는 Logback을 사용하게 된다. (Logback이 SLF4j 의 구현체, dependency를 보면 JUL, Log4J를 SLF4j로 보내는 의존성이 존재한다.) * 로깅퍼사드 vs 로거 Coomons Logging / SLF4J는 Logger들을 추상화해둔 인터페이스.. 주로 framework는 이러한 퍼사드를 이용해서 코딩을 한다. -> 이렇게하면 로깅 퍼사드 아래의 Logger들을 바꿔 끼울 수 있다는 장점 (JUL, Log4J2, Logback) framework에서 로깅 퍼사드 기반으로 코딩을 하는 이유는 본인들이 원하는 로거를 사용할 수 있도록 하기 위해 간단한 설정을 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/biTNKL/btqYZ6BoeXN/yBxOK7R3kRIsplKTUSS8Bk/img.png)
스프링 부트의 가장 기본적인 특징을 살펴보도록 하자. 1. Banner 설정 Spring Application을 띄울 때 항상 등장하는 Banner를 직접 Customizing 할 수 있다. 직접 코딩을 통해 만드는 방법도 있지만... 가장 간단한 방법만 소개하고 넘어가도록 한다. resources 디렉토리 안에 Banner.txt | gif | jpg | png 파일을 넣어주면 된다. txt 파일안에 직접 문자를 입력하면 해당하는 문자열이 Application이 뜰 때 등장한다. 또한, gif / jpg / png 파일과 같이 이미지 파일도 등록할 수 있다. 그렇게 중요한 부분은 아니기 때문에 그 외 간단한 것들만 살펴보고 넘어가도록 하자.. Banner.txt에 사용할 수 있는 변수가 존재한다. 아래..
직전 포스팅에서 Application에서 Bean 설정을 했지만,, AutoConfigure에서 설정된 그 값이 그대로 출력되는 현상을 발견했다. 이러한 현상이 발생한 원인을 한번 더 언급하자면, Component Scan을 통해서 직접 설정한 값이 Bean으로 등록된다고 하더라도 이후에 진행되는 EnableAutoConfigure에서 추가적인 Bean 등록이 이루어져 직접 설정한 Bean의 값이 Overwrite 되었기 때문이다. 따라서, 우리는 이 값이 이미 Bean으로 등록되어 있을 때, AutoConfigure에서 Bean으로 등록하지 않도록 하는 @ConditionalOnMissingBean Annotation을 추가적으로 달아줌으로써 해결할 수 있다. @Configuration public c..
저번 포스팅에서 살펴봤던 자동 설정을 실습을 통하여 살펴보고자 한다. 먼저, AutoConfigure를 제공할 프로젝트를 생성하고 아래의 과정을 진행한다. (물론 해당 의존성을 주입받을 프로젝트도 준비하자.) Step 1. Creation AutoConfigure Project 1. pom.xml chany spring-boot-starter 1.0-SNAPSHOT org.springframework.boot spring-boot-autoconfigure org.springframework.boot spring-boot-autoconfigure-processor true org.springframework.boot spring-boot-configuration-processor true org.sprin..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/YjNFb/btqYTNVJ2X1/jKpLJCVcjYmp0M7lCKRgo1/img.png)
Spring Boot에서 Bean은 총 2단계로 등록이 된다. 그 내용을 살펴보기 전에 먼저, @SpringBootApplication을 확인해보면 아래와 같은 구조로 되어 있는 것을 볼 수 있다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = Auto..