학습68 [spring] 독립적으로 실행 가능한 JAR (Executable Jar) 자바 프로젝트 -> 독립적으로 실행 가능한 JAR 독립적으로 실행 가능한 웹 어플리케이션 생성 배포할 때 or Docker image에서 실행할 때, JAR 패키징이 유용 스프링부트의 주요 목표 中 하나 = Standalone application JAR 생성하기 [Maven] mvn clean -> mvn package [Gradle] gradle clean -> gradle bootJar (by spring-boot-gradle-plugin 2.0 이상) java 명령어로 JAR 실행하기 gradle bootJar로 생성된 JAR는 build/libs/에 위치 JAR파일 하나에 다른 라이브러리 JAR들이 모두 포함됨 unzip 명령어를 통해 JAR파일을 풀어보면 확인 가능 app/BOOT-INF/cl.. 2020. 4. 8. [spring] 스프링부트의 내장 WAS 이해와 응용 스프링부트의 내장 WAS 기본 = Apache Tomcat @SpringBootApplication를 실행하면 자동으로 웹 서버가 실행 - 스프링부트가 웹 서버 자체인 것은 아님 - 스프링부트는 스프링을 편하게 사용하기 위한 툴에 불과 - 내장된 웹 서버를 구동할 뿐 당연히, 순수 자바 코드로도 톰캣 구축 가능 톰캣 객체 생성 포트 설정 톰캣에 컨텍스트 추가 서블릿 생성 톰캣에 서블릿 추가 컨텍스트에 서블릿 맵핑 톰캣 실행 및 대기 스프링 부트는 자동으로 구축 Class ServletWebServerFactoryAutoConfiguration (서블릿 웹 서버 생성) Class DispatcherServletAutoConfiguration (서블릿 생성 후, 등록) Class TomcatServletWe.. 2020. 4. 8. [spring] 스프링부트의 AutoConfiguration을 이용한 Bean 등록 Bean 등록 단계 Component scan을 통해서 모은 component들의 정보에 의해 빈 등록 Spring Boot가 spring.factories 파일에 사전에 정의한 AutoConfiguration 내용에 의해 bean 생성이 진행 예상되는 문제점 @Component를 통해 등록한 빈과, @Configuration에 의해 등록된 빈이 서로 충돌하면? 개발자가 등록한 빈이 @Configuration에 의해 오버라이딩된다면? 우리에게 필요없는 빈이 @Configuration에 의해 자동으로 등록된다면? 해결법 ~ 조건적인 빈 등록 AutoConfigure 설정 자바 파일에서, @Bean을 반환하는 메소드에 @Conditional 관련 어노테이션을 이용해서 특정 조건 하에서만 빈을 등록할 수 있다.. 2020. 4. 6. [spring] 스프링부트의 Bean 등록 2단계 @SpringBootApplication 메인 어플리케이션 클래스에 선언되는 어노테이션 @SpringBootConfiguration + @ComponentScan + @EnableAutoConfiguration 스프링부트 어플리케이션은 빈 등록을 2번 수행 @ComponentScan으로 등록하는 1단계 @EnableAutoConfiguration으로 추가적인 빈을 등록하는 2단계 1단계 @ComponentScan @Component 어노테이션을 가진 클래스를 스캔해서 빈으로 등록 이 어노테이션이 선언된 위치부터, 모든 하위 패키지를 스캔 Ex) @Configuration / @Controller / @Service / @Repository / @RestController 2단계 @EnableAutoCon.. 2020. 3. 28. [spring] 스프링부트 프로젝트 초기 세팅 시 빌드 툴의 이해 (maven, gradle) Maven의 경우 결론 : 의존성들도 부모-자식의 계층 구조로 이루어진다 spring-boot-starter-web의 parent = spring-boot-starter-parent spring-boot-starter-parent의 parent = spring-boot-dependencies (최상위 의존성) 최상위 의존성의 에 스프링 부트에 포함되는 기본 의존성들이 정의 최상위 의존성의 에 기본 의존성들의 버전 정보 정의 부모-자식 구조의 특징 상속 없이 의존성을 추가하고 싶다면 dependencyMangement에 spring-boot-starter-parent 추가 그러나 dependencyManagement는 오직 의존성 관리만 받을 수 있다 하지만 상속을 받는다면 / / 등과 같은 propert.. 2020. 3. 25. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음