반응형

 

- 독립적으로 실행되는 jar 파일

mvn package를 하면 실행 가능한 JAR 파일 “하나가" 생성 됨.

spring-maven-plugin이 해주는 일 (패키징)

과거 “uber” jar 를 사용

모든 클래스 (의존성 및 애플리케이션)를 하나로 압축하는 방법

뭐가 어디에서 온건지 알 수가 없음

무슨 라이브러리를 쓰는건지..

내용은 다르지만 이름이 같은 파일은 또 어떻게?

스프링 부트의 전략

내장 JAR : 기본적으로 자바에는 내장 JAR를 로딩하는 표준적인 방법이 없음.

애플리케이션 클래스와 라이브러리 위치 구분

org.springframework.boot.loader.jar.JarFile을 사용해서 내장 JAR를 읽는다.

org.springframework.boot.loader.Launcher를 사용해서 실행한다.

 

 

- 스프링 부트 원리 정리

의존성 관리

: 이것만 넣어도 이만큼이나 다 알아서 가져오네?

자동 설정

: @EnableAutoConfiguration이 뭘 해주는지 알겠어.

내장 웹 서버

: 아 스프링 부트가 서버가 아니라 내장 서버를 실행하는 거군.

독립적으로 실행 가능한 JAR

: spring-boot-maven 플러그인이 이런걸 해주는구나..

반응형
반응형

 

- 컨테이너와 포트

다른 서블릿 컨테이너로 변경

웹 서버 사용 하지 않기

: application.properties에  spring.main.web-application-type=none

포트

: application.properties에  server.port=7070

랜덤 포트

: application.properties에  server.port=0

ApplicationListner<ServletWebServerInitializedEvent>

 

 

- http와 https

[terminal]

keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.12 -validity 4000

[application.properties]

server.ssl.key-store=keystore.12

server.ssl.key-store-type=PKCS12

server.ssl.key-password=123456

server.ssl.key-alias=spring

반응형
반응형

 

- 의존성

: POM.xml 파일에서 왼쪽에 'o' 표시 뜨면 관리되고 있는 의존성임, 안 뜨면 버전을 꼭 써줘야 함

: dependency에 버전이 없고, 두 개밖에 없음

: parent -> dependencies : 버전들이 쭉 들어있고, 이 중에서 사용하면 따로 버전을 명시하지 않아도 됨

: 우측 maven 창에서 의존성 관계를 볼 수 있음

: 우리가 관리해야할 의존성이 줄어듦(버전 관리를 할 필요없음)

: 특별히 원하는 버전이 있으면 써주면 됨

만약, parent를 사용하지 않는다면 레퍼런스에 방법에 따르면 됨

but, parent가 그 밖의 다른 설정들도 해주기 때문에 parent POM 쓰는 것을 추천

 

- 의존성 버전 변경하는 법

: parent -> dependencies 에서 버전 복사해서

: POM.xml properties 버전 변경해서 추가

 

 

- @EnableAutoConfiguration, 자동 설정

: @SpringBootApplication = @SpringBootConfiguration + @ComponentScan + @EnableAutoConfiguration

: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

-> @EnableAutoConfiguration 에서 자동으로 만들어주는 빈

-> WebApplicationType.NONE으로 설정해주면 됨

: @ComponentScan 에서 먼저 빈을 불러들이고, @EnableAutoConfiguration 에서 두번째로 추가적인 빈을 등록해줌

 

- @ComponentScan

: @Component @Configuration @Repository @Service @Controller @RestController라는 어노테이션을 가진 클래스들을 스캔해서 빈으로 등록하는 것

: TypeExcludeFilter과 AutoConfigurationExcludeFilter는 제외하고 빈으로 등록함

: me.whiteship 밑에 있는 아이들만 빈으로 등록해 줌

 

- @EnableAutoConfiguration

: spring.factories

: org.springframework.boot.autoconfigure.EnableAutoConfiguration 키값에 해당하는 모든 클래스를 빈에 등록함 -> 조건에 맞으면

 

 

 

- autoconfiguration

1. 의존성 추가

<dependencies>
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-autoconfigure</artifactId>
  </dependency>
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-autoconfigure-processor</artifactId>
      <optional>true</optional>
  </dependency>
</dependencies>

<dependencyManagement>
  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-dependencies</artifactId>
          <version>2.0.3.RELEASE</version>
          <type>pom</type>
          <scope>import</scope>
      </dependency>
  </dependencies>
</dependencyManagement>

2. @Configuration 파일 작성 -> HolomanConfiguration.class

package me.whiteship;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class HolomanConfiguration {

    @Bean
    public Holoman holoman(){
        Holoman holoman = new Holoman();
        holoman.setHowLong(5);
        holoman.setName("keesun");
        return holoman;
    }
}

 

 

- 톰캣 내장 웹서버
스프링 부트는 서버가 아니다.
톰캣 객체 생성
포트 설정
톰캣에 컨텍스트 추가
서블릿 만들기
톰캣에 서블릿 추가
컨텍스트에 서블릿 맵핑
톰캣 실행 및 대기

: 이 모든 과정을 보다 상세히 또 유연하고 설정하고 실행해주는게 바로 스프링 부트의 자동 설정.
ServletWebServerFactoryAutoConfiguration (서블릿 웹 서버 생성)
TomcatServletWebServerFactoryCustomizer (서버 커스터마이징)
DispatcherServletAutoConfiguration (서블릿 만들고 등록)

반응형
반응형

* 윈도우 환경을 가정합니다.

 

 

1. VMware Workstation 설치하기

 

www.vmware.com/kr.html

[ 링크접속 -> 다운로드 -> 무료 제품 다운로드 -> Workstation Player -> Windows용 Workstation 15.5 Player 사용해보기 ]

로 VMware를 다운로드함

 

 

2. CentOS 설치하기

 

www.centos.org/

 

The CentOS Project

September 23-25: DevConf.US and Dojo The call for presentations for both DevConf.US and the CentOS Dojo are now open. Both will be held online. Welcome to our new board members! The CentOS community, along with the Governing Board, is pleased to welcome tw

www.centos.org

[메인 화면에서 CentOS Linux -> 6.10 -> i386 -> 위의 4가지 링크중에 아무거나 하나클릭 -> ~DVD1.iso 파일 다운로드]

 

 

 

3. 가상 머신 설정 1

 

1) VMware 실행

2) 메뉴의 [File -> New Virtual Machine]

3) 기본 설정으로 하고 NEXT -> "I will install the operating system later" 선택

4) GuestOS로 "Linux" 선택, version에서 "CentOS" 선택

5) 하고싶은 이름 설정, 파일들이 저장될 위치를 Location에 설정

6) "Split virtual disk into multiple files" 선택

7) Finish

 

 

4. 가상 머신 설정 2

 

1) 메인 화면에서 [VM-> setting -> CD/DVD]

2) Use iso image file -> 2번에서 다운받은 iso 파일 넣어줌

3) VMware 상단에 초록색 화살표 버튼 클릭하여 가상머신 구동

 

 

5. 리눅스 설치하기

 

가상머신 구동 후,

1) 맨 위의 Install or upgrade an existing system 선택

2) skip

3) next

4) 언어 korean 선택

5) 키보드 U.S 영어 선택

6) 기본 저장 장치 -> 다음 버튼 클릭 / 예, 모든 데이터를 삭제합니다.

7) 시간 지역 설정

8) 루트 암호 설정하기(꼭 기억하기, 계속 사용할 예정)

9) 모든 공간 사용

10) 디스크에 변경 사항 기록

11) Desktop 선택

12) Linux 설치(약 20분 소요)

반응형
반응형

감사합니다!

반응형

+ Recent posts