Springboot学習,@SpringBootApplication(一)

4421 ワード

リソースディレクトリ構造
-----------resources
--------------static:    (html,css,js,  ,   )
--------------templates:    (freemarker,thymeleaf;     JSP)
--------------application.properties:    

mainメソッドは注記@SpringBootApplicationを起動します.つまりspring bootの主な構成クラスは主に以下の3つの主要な注記を含み、主に以下の3つの主要な注記を含みます.
  • @SpringBootConfigurationには@Configuration注記が含まれており、springコンテナに構成を追加するための構成として機能します.
  • @EnableAutoConfigurationによりspring bootは、以下の2つの重要な注記@AutoConfigurationPackage(スキャンパッケージ、ユーザーカスタマイズ)->@Import(AutoConfigurationPackages.Registrar.class)->AutoConfigurationPackages.Registrar(@SpringBootConfiguration注記が存在するパッケージクラスをスキャンします.役割:このパッケージとそのすべてのサブパッケージがspringコンテナ管理に組み込まれます)@Import(AutoConfigurationImportSelector.class)(springコンテナに選択的にインポートされます.主にサードパーティjar、構成など)->AutoConfigurationImportSelector#selectImports------>SpringFactoriesLoader FACTORES_RESOURCE_LOCATION = “META-INF/spring.factories”; 三方依存spring-boot-autoconfigure-x.x.x.RELEASEを起動します.JArは、J 2 EE全体に必要なすべての依存
  • を含む
    例を挙げるorg.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration
    @Configuration
    @EnableConfigurationProperties(HttpProperties.class)
    @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
    @ConditionalOnClass(CharacterEncodingFilter.class)
    @ConditionalOnProperty(prefix = "spring.http.encoding", value = "enabled", matchIfMissing = true)
    public class HttpEncodingAutoConfiguration {
         
    
    }
    
    

    このソースコードを見ると、@Configuration:このクラスが構成クラスであることを識別し、spring iocコンテナに組み入れる@E n a b l e ConfigurationProperties(HttpProperties.class):HttpPropertiesのpredfix+属性名を変更することによって[プロファイルでyml/properties]をデフォルト符号化springのように変更する.http.encoding.charset=UTF-8、ファイルアプリケーションを再構成することができる.propertiesに構成springを追加します.http.encoding.charset=ISO-8559-1修正
    @ConditionalOnXXX、条件を満たしてからロードします.例@ConditionalOnProperty(prefix="spring.http.encoding"、value="enabled"、matchIfMissing=true)
  • 属性が要求を満たす場合、springhttpが構成されていない場合、この条件は成立する.encoding.enabled=xxxは、成立します.すなわち、各XxAutoConfiglurationには多くの条件@Conditiona 10 nXxxがあり、これらの条件が満たされると、この構成は自動的に有効になります.ただし、自動アセンブリは手動で変更できます.XxxPropertiesファイルのpréfix+プロパティ名=value
  • グローバルプロファイルのkeyは、あるPropertiesファイルのprefix+プロパティ名
  • に由来します.
    共通@CondItlonal
    @CondItlonal拡張注記
    作用(現在の稲定条件を満たすか否かを判断する)
    @CondItlonalOnJava
    システムのjava版がテーブルの要求に合致するかどうか
    @CondItlonalOnBean
    指定されたBeanがコンテナに存在します.
    @CondItlonalOnMissingBean
    指定日eanはコンテナに存在しません:
    @CondItlonalOnExpression
    SPEL式の指定を満たす
    @CondItlonalOnClass
    システムに指定されたクラスがあります
    @CondItlonalOnMissingClass
    指定されたクラスに沿ったシステム
    @CondItlonalOnSingleCandidate
    コンテナには指定されたBeanが1つしかありません.または、このBeanが優先されています.
    @CondItlonalOnProperty
    システムで指定した属性に指定した値があるかどうか
    @CondItlonalOnResource
    クラスパスの下に指定されたリソースファイルがあります.
    @CondItlonalOnWebApplication
    現在はWeb環境
    @CondItlonalOnNotWebApplication
    現在はwebループ後ではありません
    @CondItlonalOnJndi
    JND存在指定項目
    注意:debug=trueは、springbootが自動的にオープンしたアセンブリNegative matchesリストがspringbootがこの時点で有効になっていないアセンブリを示すシステムにロードされている3つのクラスPositive matchesリストを表示します.