Springboot学習,@SpringBootApplication(一)
4421 ワード
リソースディレクトリ構造
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:このクラスが構成クラスであることを識別し、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リストを表示します.
-----------resources
--------------static: (html,css,js, , )
--------------templates: (freemarker,thymeleaf; JSP)
--------------application.properties:
mainメソッドは注記@SpringBootApplicationを起動します.つまりspring bootの主な構成クラスは主に以下の3つの主要な注記を含み、主に以下の3つの主要な注記を含みます.
例を挙げる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)
共通@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リストを表示します.