[SpringBoot] SpringBoot 자동 구성 (II)

  SpringBoot 프로젝트에 대한 참조를 만들려면 [SpringBoot] SpringBoot 빠른 시작 (A)

  이 문서에서는 SpringBoot 프로젝트의 POM 파일을 자동으로 구성 설명

POM 파일

  1, SpringBoot POM을 파일로서 다음, springboot 부모 프로젝트에 의존 참조

1  < 부모 > 
2      < 의 groupId > org.springframework.boot </ 의 groupId > 
3      < artifactId를 > 스프링 부팅 스타터 부모 </ artifactId를 > 
4      < 버전 > 2.1.8.RELEASE </ 버전 > 
5  </ 부모 >

    springboot 부모 프로젝트는 봄 부팅의 실제 버전은 내부에 종속 된 모든 응용 프로그램을 관리하는 부모 프로젝트를 가지고

1  < 부모 > 
2      < 의 groupId > org.springframework.boot </ 의 groupId > 
3      < artifactId를 > 스프링 부트 의존성 </ artifactId를 > 
4      < 버전 > 2.1.8.RELEASE </ 버전 > 
5      < relativepath를 > ../ ../spring-boot-dependencies </ relativepath를 > 
6  </ 부모 >

    수입 의존도가 기본 버전을 쓸 필요가 없다 후 (필요 의존성 관리를 의존하는 자연의 버전 번호를 선언 없습니다)

  2, SpringBoot 선발

    스프링 부팅 스타터 : 봄 부팅 장면 개시, 우리가 웹 어셈블리 모듈을 도입 도움이 정상적으로 따라 작동

1  < 종속성 > 
2      <! - 버전 번호, 따라 상위 프로젝트 (스프링 부팅 스타터 부모의 버전 번호 쓸 필요 없음 ) 관리 -> 
3      <! - SpringBoot 모든 기능을 추출 장면, 만든 선발 (선발),
 4          만 가져 오기에 사용 어떤 기능, 모든 수입에 따라 달라집니다 프로젝트에 이러한 스타터 관련 장면을 소개 할 필요 선발 -> 
5      < 의존성 > 
6          < 의 groupId > org.springframework.boot </ 의 groupId > 
. 7          < artifactId를 > 봄 부팅 - 초보 - 웹 </ artifactId를 > 
. 8      </ 의존성 > 
. 9  </ 종속성>

메인 프로그램의 메인 입구 클래스

  1 주 프로그램의 입구 클래스

. 1  / ** 
2  * @SpringBootApplication는 설명 스프링 부트 프로그램 인 메인 프로그램을 표시하는 데 사용
 . 3   * / 
. 4  @SpringBootApplication
 . 5 개  공용  클래스 응용 {
 . 6  
. 7      공공  정적  무효 메인 (문자열 [] 인수)을 {
 . 8  
. 9          // 발사 스프링 애플리케이션 
10          SpringApplication.run (. 애플리케이션 클래스 , 인수를)
 . (11)      }
 (12)이다 }    

  2, SpringBoot 코멘트

     SpringBootApplication @ A,이 클래스에 설명 봄 부팅 라벨 응용 프로그램이 클래스는, 메인 구성을 SpringBoot

    SpringBoot는 SpringBoot 응용 프로그램을 시작하려면이 클래스의 main 메소드를 실행해야합니다;  

1  @Target (ElementType.TYPE)
 2  @Retention (RetentionPolicy.RUNTIME)
 3  @Documented
 4  @Inherited
 5  @SpringBootConfiguration
 6  @EnableAutoConfiguration
 7 @ComponentScan (excludeFilters @filter = {(TYPE = FilterType.CUSTOM 클래스 = TypeExcludeFilter. 등급 ) ,
 8          @filter은 (TYPE = FilterType.CUSTOM 클래스 = AutoConfigurationExcludeFilter. 등급 )})
 (9)  공개 @ 인터페이스 SpringBootApplication {

    B @ SpringBootApplication> @SpringBootConfiguration : 스프링 부팅 구성 클래스, 스프링 부팅 구성 클래스에 의해 표현되는 클래스에 표시; 

    C @ SpringBootApplication> @SpringBootConfiguration> @Configuration : 주석 기능 구성가 표시됨; ----- 프로파일 구성 클래스, 클래스 구성 어셈블리 용기이다 @Component

    D, @ SpringBootApplication> @EnableAutoConfiguration : 자동 구성 기능을 설정, 뭔가 봄 구성, SpringBoot가 자동 구성 기능을 열고, 자동 구성이 적용;

1  @Target (ElementType.TYPE)
 2  @Retention (RetentionPolicy.RUNTIME)
 3  @Documented
 4  @Inherited
 5  @AutoConfigurationPackage
 6 @Import (AutoConfigurationImportSelector. 등급 )
 7  공개 @ 인터페이스 EnableAutoConfiguration {

    전자, @ SpringBootApplication> @EnableAutoConfiguration> @AutoConfigurationPackage : 자동 구성 패키지

    F @ SpringBootApplication> @EnableAutoConfiguration> @AutoConfigurationPackage> @Import (AutoConfigurationPackages.Registrar.class) 스프링 바닥 메모 @Import는 용기가 성분에 도입된다 AutoConfigurationPackages.Registrar.class 도입 성분;

      여기서 모든 기본 패키지 구성 클래스의 모든 구성 요소 (@SpringBootApplication 클래스 라벨) 및 스캔 스프링 용기 내부의 하부 서브 패킷;         

    g @ SpringBootApplication> @EnableAutoConfiguration> @Import (EnableAutoConfigurationImportSelector.class) 수입 컨테이너 선택 성분  

      EnableAutoConfigurationImportSelector : 어셈블리 선택을 도입, 이러한 구성 요소가 컨테이너에 추가 될 것이다 클래스 방식의 전체 이름을 반환하는 데 필요한 모든 구성 요소를 가져;

      그것은 자동 구성 클래스 (xxxAutoConfiguration) 수입 용기를 많이 줄 것이다,이 시나리오는 컨테이너에 필요한 모든 구성 요소를 가져오고 이러한 구성 요소를 구성하는 것입니다;

      

      SpringFactoriesLoader.loadFactoryNames (EnableAutoConfiguration.class, classLoader가) 자동 구성 클래스의 필요성을 제거하는 직접 분사 운전 같은 기능적 구성 요소의 구성을 작성하는 단계;

      봄 부팅 EnableAutoConfiguration는 META-INF에 의해 지정된 값을 가져옵니다 / 시작시 클래스 경로를 spring.factories

      스프링 부팅 자동 구성 - 2.1.8.RELEASE.jar는 J2EE 전체 통합 솔루션 및 자동 구성에있다;

 

 

  

추천

출처www.cnblogs.com/h--d/p/11986555.html