Spring/Spring boot
-
[07] ProfileSpring/Spring boot 2020. 6. 3. 21:27
profile을 사용하면 적용된 profile에 따라 bean의 등록을 달리하거나 특정 logic을 실행할 수 있도록 하여 환경에 따라 application을 유연하게 실행할 수 있습니다. (profile에 대한 자세한 예) profile을 사용하는 간단한 예제를 살펴보도록 합시다. 먼저 서로다른 profile을 적용할 bean 설정 file을 두개 준비합니다. 각각의 bean 설정 file 내용은 다음과 같습니다. @Profile("base")//① @Configuration//② public class BaseConfiguration { @Bean//③ public String printConfiguration() { return "Base Configuration"; } } ① @Profile an..
-
[06] 외부 설정 file (Property)Spring/Spring boot 2020. 6. 1. 11:52
[외부 설정의 file 종류와 우선순위] 외부 설정 file은 application에서 사용하는 여러 가지 properties를 담아놓은 file로 application 내부 또는 외부에 위치할 수 있습니다. 외부 설정 file은 다음과 같은 것들이 있습니다. properties (application.properties) YAML 환경변수 (environment variable) Command line arguments Properties는 여러 군데 산재할 수 있으며 각각의 다른 외부 설정에 동일한 property key가 존재할 경우 우선순위에 따라 property에 해당되는 value를 선택하게 됩니다. property의 우선순위는 다음과 같습니다. home directory에 있는 spring-..
-
[05] Spring ApplicationSpring/Spring boot 2020. 5. 28. 08:53
[Spring boot log에 debug log 출력하기] Ctrl + Shift + A로 검색창을 열어 edit configurations 라고 입력 후 enter를 누르면 Run/Debug Configurations 메뉴가 열립니다. VM option 또는 Program arguments를 설정해서 Spring boot 실행창에 debug log를 찍을 수 있습니다. 각각의 설정할 값은 다음과 같습니다. Debug log 내용에는 각각의 자동설정이 포함 또는 제외된 원인이 포함됩니다. VM option : -Ddebug program argument : --debug [FailureAnalyzer] Application error 발생 시 message를 보기 좋게 출력해주는 기능입니다. Sprin..
-
[04] 독립으로 실행가능한 JAR fileSpring/Spring boot 2020. 5. 26. 08:57
Spring boot project를 build하여 생성된 JAR file은 독립적으로 실행할 수 있습니다. application을 배포하거나 docker image로 만들 때는 JAR package로 packaging된 JAR file을 실행하는 것이 유용합니다. [JAR packaging과 실행 방법] build plugin을 사용하여 build 시 JAR packaging을 진행 합니다. build plugin 중 하나인 maven을 통해 packaging하고 실행하는 방법은 다음과 같습니다. mvn clean package 명령으로 target 아래 있는 모든 것을 삭제합니다. mvn package -DskipTests 명령으로 packaging을 진행합니다. (-DskipTests option으..
-
[03] 내장 Web Application ServerSpring/Spring boot 2020. 5. 20. 08:55
Spring boot 내장 WAS에 대해 살펴보기 전에 정확한 용어를 확인하도록 하겠습니다. 정적(static) page client에서 request가 있을 때 항상 정해진 내용으로만 response 하는 page를 말합니다. 정적인 요소는 html, css, 그 밖의 image를 포함한 resource들이 있습니다. 동적(dynamic) page client의 request에 대해 server에서 데이터를 가공하여 client에 맞는 내용을 response 하는 page를 말합니다. Web Server client의 request에 대해 정적인 page를 http protocol을 사용하여 제공합니다. client로 부터 동적 page에 대한 request를 받으면 이를 처리할 수 있는 contain..
-
[02] Spring boot 자동 설정Spring/Spring boot 2020. 5. 15. 09:28
[@SpringBootApplication annotation에 대해] Spring boot project를 생성하고 application을 실행하면 별다른 설정 없이도 실행이 가능합니다. 그 이유는 다음과 같이 @SpringBootApplication annotation안에 @EnableAutoConfiguration annotation이 선언되어 있기 때문입니다. ...(생략)... @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan( excludeFilters = {@Filter( ..
-
[01] Spring boot 의존성 관리Spring/Spring boot 2020. 5. 12. 07:57
[의존성을 어떻게 관리할까?] Web service를 위해 library 형태로 제공되는 많은 기능들이 존재합니다. 하지만 library도 지속적인 update가 있어 존재하던 기능이 없어지거나 새로운 기능이 추가될 수도 있고 기존 기능이 개선되면서 사양이 일부 변경되기도 하는 등의 변화가 있을 수 있으며 따라서 여러 가지 version이 존재합니다. Web service를 위해 여러 library 간의 협력이 요구되는데 이때 특정 version의 각 library들이 정상적으로 상호 동작하는지 확인해야 합니다. 즉, 상호 의존관계의 기능(의존성)들이 정상 동작하는지 확인하는 것입니다. Spring boot는 maven이나 gradle과 같은 build tool을 사용하여 이런 의존성 관리를 자동으로 해..
-
[00] Maven으로 Spring Boot Project 생성Spring/Spring boot 2020. 5. 11. 09:37
[Spring Boot Project 생성] IntelliJ에서 build tool 중 하나인 Maven을 사용하여 Spring boot project를 생성할 수 있습니다. (Gradle을 통한 project 생성은 여기를 참고해주세요.) + Create New Project를 클릭하여 Project 생성을 진행합니다. Maven을 선택하시고 다른 설정 없이 Next를 클릭합니다. ▶을 눌러 Aritifact Coordinates를 펼칩니다. GroupID는 사용자의 package명을 입력하시고 ArtifactId는 project 이름이므로 원하는 내용으로 입력해 주세요. (package는 URL의 역순으로 주로 입력합니다. 예를 들면 com.kakao.dev와 같은 형태입니다.) GroupID와 Ar..