반응형

 

- 의존성

: 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 (서블릿 만들고 등록)

반응형

+ Recent posts