Java (65) 썸네일형 리스트형 [Spring Boot] 외부 설정 1. 외부 설정 어플리케이션에서 사용할 여러 설정 값들을 어플리케이션의 밖이나 안에 정의할 수 있는 기능 ex) application.properties : Spring Boot가 어플리케이션을 구동할 때 자동으로 로딩하는 파일 ① src/main/resources/application.properties key-value 형태로 정의하면 어플리케이션에서 참조해서 사용할 수 있음 ② 사용 예제 -> 우선순위 15위 import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; .. [Spring Boot] ApplicationArguments / ApplicationRunner 1. ApplicationArguments Run/Debug Configurations -> Configuration -> VM options : -D로 들어옴 Run/Debug Configurations -> Configuration -> Program arguments : --로 들어옴 @Component public class ArgumentsTest { public ArgumentsTest(ApplicationArguments arguments) { System.out.println("foo: " + arguments.containsOption("foo")); System.out.println("bar: " + arguments.containsOption("bar")); } } Bean의 생성자가.. [Spring Boot] WebApplicationType 1. SERVLET Spring MVC가 있는 경우 Spring MVC, Spring WebFlux가 있는 경우 (Spring MVC가 있으면 무조건 SERVLET) 2. REACTIVE Spring MVC가 없고, Spring WebFlux만 있는 경우 3. NONE 둘 다 없는 경우 4. 둘 다 있는데 REACTIVE로 동작하게 하기 : setWebApplicationType() SpringApplication app = new SpringApplication(Application.class); app.setWebApplicationType(WebApplicationType.REACTIVE); app.run(args); https://www.inflearn.com/course/%EC%8A%A4%ED%.. [Spring Boot] Log Level # log level 아무런 옵션도 변경하지 않고 실행하게 되면 기본적으로 application의 로그 레벨은 "Info" ("Info" 레벨의 로그만 찍힘) IntelliJ 우측 상단 Edit Configurations Configuration - Environment 내에 VM options 또는 Program arguments 둘 중 하나만 입력하면 됨 VM options : -Ddebug Program arguments : --debug 이렇게 하면 debug 모드로 application이 동작하고, application 로그도 debug 레벨까지 출력함 debug 레벨로 하게 되면 어떠한 자동 설정이 적용이 됐는지, 어떠한 자동 설정이 왜 적용이 안됐는지 확인 가능 https://www.infl.. [Spring Boot] Application Events and Listener 1. Application Context가 만들어지기 이전에 발생되는 이벤트 ex) ApplicatonStartingEvent : 애플리케이션 맨 처음에 발생하는 이벤트 Bean으로 등록하더라도 Listener가 동작하지 않음 (즉, @Component 어노테이션 불필요) addListeners()를 사용해서 직접 등록해줘야 함 ① EventListener 생성 import org.springframework.boot.context.event.ApplicationStartingEvent; import org.springframework.context.ApplicationListener; //import org.springframework.stereotype.Component; //@Component pu.. [Spring Boot] SpringApplicaton / Banner 1. Spring Boot 활용 소개 Spring Boot 핵심 기술 각종 기술 연동 Spring Application Spring Web MVC 외부 설정 Spring Data Profile Spring Security Logging Rest API Client Test 기타 Spring-Dev-Tools 2. SpringApplicaton SpringApplication 실행 시 기본적으로 아래와 같이 실행했었는데, 이렇게 하면 SpringApplication이 제공하는 다양한 커스터마이징 기능을 사용하기 어려움 SpringApplication.run(Application.class, args); 인스턴스를 만들고 run을 하는 방법으로 사용하면 됨 SpringApplication app = new .. [Spring Boot] 독립적으로 실행 가능한 JAR # mvn package 실행 가능한 JAR 파일 하나가 생성됨 생성된 jar 파일 내에 모든 의존성과, 앱에 필요한 모든 것이 다 포함되어 있음 # spring-maven-plugin : 패키징 # 과거 "uber.jar" 사용 모든 jar 파일을 합쳐서 하나의 jar로 만듦 모든 클래스(의존성 및 애플리케이션)를 하나로 압축하는 방법 뭐가 어디에서 온 건지 알 수 없음 (무슨 라이브러리를 쓰는 건지..) 내용은 다르지만 이름이 같은 파일일 경우 문제 # Spring Boot의 전략 내장 JAR : 기본적으로 Java에는 내장 JAR를 로딩하는 표준적인 방법이 없음 애플리케이션 클래스와 라이브러리 위치 구분 org.springframework.boot.loader.jar.JarFile 을 사용해서 내장.. [Spring Boot] 내장 웹 서버 응용 - HTTPS와 HTTP2 1. HTTPS 설정하기 # 키스토어 만들기 keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 4000 cf) Spring Boot Terminal 내에서 keytool command not found 발생 시 CMD 관리자권한으로 JDK 경로 내(C:\Program Files\Java\jdk1.8.0_161\bin)에서 실행하고 생긴 파일을 옮겨주면 됨 (위치는 pom.xml과 동일) # application.properties server.ssl.key-store=keystore.p12 server.ssl.key-store-type=PKCS12 server.ss.. [Spring Boot] 내장 웹 서버 응용 - 다른 웹 서버 사용하기 / 웹 서버 사용하지 않기 / 포트 변경하기 1. 다른 내장 서버 사용하기 spring-boot-starter-web이 spring-boot-starter-tomcat을 가져오기 때문에 pom.xml에서 exclusion으로 tomcat을 제외시켜주고, 사용하려는 내장서버 dependency 추가 정상적으로 변경되었다면 dependency에 jetty가 보여야 하고 실행했을 때, Jetty starterd ~ 문구가 출력되어야 함 2. 웹 서버 사용하지 않기 의존성에 웹 관련이 들어가 있으면 spring boot는 웹 애플리케이션으로 실행하려고 함 ① 소스 코드 내에 WebApplicationType.NONE으로 설정해서 웹 서버를 사용하지 않는 방법도 있지만 public static void main(String[] args) { SpringAp.. [Spring Boot] 내장 웹 서버 1. 스프링 부트는 웹 서버가 아니다. : 스프링 부트는 내장 서블릿 컨테이너를 쉽게 사용할 수 있게 해주는 툴 ex) 웹 서버 : Tomcat, Jetty, Netty, Undertow 2. 톰캣을 이용해 서버 만들기 톰캣 객체 생성 포트 설정 톰캣에 컨텍스트 추가 서블릿 만들기 톰캣에 서블릿 추가 컨텍스트에 서블릿 매핑 톰캣 실행 및 대기 웹 서버는 Java 코드로 서버를 만들 수 있는 기능을 제공함 기본적으로 Spring Boot Application을 만들었으면 의존성에 Tomcat이 들어와있음 (없는 경우 dependency에 spring-boot-starter-web 있는지 확인) # 실습코드 import java.io.IOException; import java.io.PrintWriter; .. 이전 1 2 3 4 5 6 7 다음