I.概要:
春ブーツの力は能力あるシーンを抽出するためのスターターとして
迅速に適切な場面を設定するには、ロードされたランチャー限り
ステップカスタムスターター(シーン開始剤)である:
1は、最初のシーンを決定するのに必要な依存関係が何であるか
2は、書き込み自動設定を
使用する@Configuration
クラスコンフィギュレーションクラスを指定するには、注釈を
使用@ConditionalOnXXX
自動的にクラスが指定した条件の場合に有効になります設定する注釈が満たされている
例を:
@ConditionalOnWebApplication(
type = Type.SERVLET
)
使用@AutoConfigurationAfter
順に自動的に設定したクラスを指定する注釈
例:
@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class})
使用する@Bean
コンテナにコンポーネントを追加する注釈を
使用し@ConfigurationProperties
た注釈は、バインドするために、対応するxxxPropertiesクラスコンフィギュレーションバインディング関連する
例:
@ConfigurationProperties(
prefix = "spring.mvc"
)
使用@EnableConfigurationProperties
注釈は力にxxxPropertiesクラスを作成し、コンテナに追加
例:
@EnableConfigurationProperties({WebMvcProperties.class, ResourceProperties.class})
クラスパスにある必要がありますMETA-INF
下spring.factoriesのファイルは、クラスパスが自動的に設定され、指定
SpringBootが自動的いるの起動クラスをロードするように設定することを知っているので、
例:
# Initializers
org.springframework.context.ApplicationContextInitializer=\
net.zjitc.springboot.listener.HelloApplicationContextInitializer
# Listener
org.springframework.boot.SpringApplicationRunListener=\
net.zjitc.springboot.listener.HelloSpringApplicationRunListener
注意事項:スターターでなければならない空のJARファイルのみ補助提供管理依存他のライブラリーまたは自動組み立てに使用することができ、それらの依存関係を
具体的に記述された自動コンフィギュレーションモジュールイニシエータ自動構成モジュールに依存し
、したがってのみ導入プロモーターこれは、導入された自動コンフィギュレーションモジュールと見なされる
XXX-スターター(開始剤)→XXX-スタータautoconfigurer(自動設定モジュール)であります
命名規則:
- SpringBoot公式名前空間:
接頭辞:「春・ブート・starter-」
モード:spring-boot-starter-模块名
例:春ブート・スターター・ウェブ - カスタム名前空間:
サフィックス:「 -春-ブート・スターター 」
モード:模块名-spring-boot-starter
例:MyBatisのスプリング・ブートスターター
第二に、作成したプロジェクト
そのためのアイデアで空のプロジェクトを作成するため、これらの2つの便利を起動して、自動設定モジュールの必要性の
モジュールを追加するにはプラス記号をクリックして
新しいモジュールを選択するために、
そして、MavenプロジェクトとプロジェクトSpringBootを作成
Mavenのプロジェクト:
SpringBootプロジェクト:
スターターSpringBootとしてMavenプロジェクトは、自動設定モジュールとして動作します
第三に、コンフィギュレーション
すべての最初は良いポンポン・コンフィギュレーション・ファイルに依存して1、
スタータープロジェクトのPOMファイルが自動設定モジュールを導入する必要があります。
<!-- 启动器 -->
<dependencies>
<!-- 引入自动配置模块 -->
<dependency>
<groupId>net.zjitc.starter</groupId>
<artifactId>zjitc-spring-boot-starter-autoconfigurer</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
自動設定モジュールポンポンファイルは、スプリング・ブート・スターターを導入している必要があります:
春ブート・スターターは、すべてのスターターの基本的な構成であるため、導入する必要があります
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
図2に示すように、ライト自動設定モジュールが続きます。
HelloProperties.java
クラス属性:
Attributeクラス定義されたパラメータの自動設定がすべて使用されている属性が必要です
クラスで使用することができ@ConfigurationProperties
、注釈のプレフィックスを指定した
ので、設定ファイルのパラメータを変更する接頭辞で指定することができます
@ConfigurationProperties(prefix = "zjitc.hello")
public class HelloProperties {
// 两个属性 用于绑定配置
private String prefix;
private String suffix;
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getSuffix() {
return suffix;
}
public void setSuffix(String suffix) {
this.suffix = suffix;
}
}
HelloService.java
クラスメソッド
実行する方法を提供します。
public class HelloService {
// 需要创建配置类对象 因为要使用配置类中的参数
HelloProperties helloProperties;
public String sayHello(String name)
{
// 使用配置类中的参数
return helloProperties.getPrefix()+name+helloProperties.getSuffix();
}
public HelloProperties getHelloProperties() {
return helloProperties;
}
public void setHelloProperties(HelloProperties helloProperties) {
this.helloProperties = helloProperties;
}
}
HelloServiceAutoConfiguration.java
自動コンフィギュレーションクラス
利用のように、このクラスは自動的に設定されたクラスが、最初のクラスに構成する必要がありますされて@Configuration
注釈が指定する
@ConditionalOnWebApplication
注釈を有効にのみ表現するには、Webアプリケーションである
@EnableConfigurationProperties
ノートを有効にすることを可能にするために、指定された属性クラス属性が渡さいますクラスの属性クラス
クラスのメソッドのクラスの設定の初期化:
// 自动配置类
@Configuration
// 只有Web应用才会生效
@ConditionalOnWebApplication
// 让属性类中的属性生效
@EnableConfigurationProperties(HelloProperties.class)
public class HelloServiceAutoConfiguration {
@Autowired
HelloProperties helloProperties;
@Bean
public HelloService helloService()
{
HelloService helloService=new HelloService();
// 设置属性配置文件
helloService.setHelloProperties(helloProperties);
return helloService;
}
}
[設定/METE-INF/spring.factories
プロファイルには
、構成ファイル内に配置され、自動的に開始ローディングクラスで構成されたパス:
# 指定启动时要加载的自动配置类
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
net.zjitc.starter.HelloServiceAutoConfiguration
最後に、このようなディレクトリ:
インストールMavenのライフサイクルが自動的にモジュールを設定し、スタータがされている入力ウェアハウスに設置
倉庫で、インストール後の座標を導入するために、他のプロジェクトで直接使用することができます
第四に、テスト
そして、テスト用のプロジェクトを作成します:
のみ必要座標スターター導入することができますが:
すべてのスターターは、自動的にすべてのインポートを設定します依存しているため
<!-- 引入自定义的starter -->
<dependency>
<groupId>net.zjitc.zjitc</groupId>
<artifactId>zjitc-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
そして、それは簡単な
テストカテゴリ:
@RestController
public class HelloController {
@Autowired
HelloService helloService;
@GetMapping("hello")
public String hello()
{
return helloService.sayHello("Piconjo");
}
}
導入スターターを説明してきたランチャクラスに導入することができます
テスト・メソッド呼び出しは、これら二つの特性と二つの性質及び無事前に設定初期値を使用する必要があるので
、したがって、属性の試験プロジェクトで設定する必要があります
# 配置前后缀
zjitc.hello.prefix=ZJITC
zjitc.hello.suffix=SOFTWARE1801
テストは成功です