カスタムスターターを作るspringboot

カスタムスターター

スターターは統一し、スターターに統合され、以前の複雑な設定を、放棄することは非常に重要なメカニズムである、アプリケーションが唯一のスターターを導入する必要がSpringBoot Mavenの依存、SpringBootは、自動的に負荷に情報をスキャンし、対応を開始しますデフォルトの設定。のは、スターターハンドルの依存ライブラリの多様性を取り除く、あなたが設定する必要があり、様々な情報に悩まさしてみましょう。SpringBootは自動的にクラスパスのパスで必要なBeanクラスを発見し、容器IOCに登録します。日常のビジネスアプリケーションは、さまざまなシナリオの開発に依存するために、ばねブートスターターモジュールを提供SpringBoot。これらのモジュールはすべて、カスタムデフォルトの設定に従うことに同意した依存している、と私たちは、すなわち概念「構成されたよりも大会」に従うために、これらの構成を調整することができます。

なぜカスタマイズスターター

日々の開発作業では、多くの場合、いくつかの独立したサービス構成モジュールがあるだろう、私たちは、多くの場合、1つの特定のパッケージに入れて、コードのニーズはハードにコピーするときに別のプロジェクトのニーズは、この機能を多重化する場合再び再統合別のプロジェクトは、多くのトラブル。我々はサービスコードモジュールパッケージの独立した作品1スターターに配置される場合は、時間が自動組立を完了するのに依存してPOMを基準とする必要がある、SpringBootたちに多重化されます。

命名スターターのカスタム

スターターSpringBootは、ばねブートスターター-XXXという名前の仕方に提供します。公式勧告はXXX-春・ブート・スターターの命名規則を使用してカスタマイズスターター。スターターを区別するためにSpringBootエコ提供します。

 

手順

春の新プロジェクトを作成します。1.

これは、春Initializrでビルドにアイデアを使用して、言うまでもなく必要があります

次のようにプロジェクトが構成されています

 

2.pom設定

<?xmlのバージョン= "1.0"エンコード= "UTF-8"> 
<プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0"のxmlns:XSI = "のhttp://www.w3 .ORG / 2001 / XMLスキーマ・インスタンス」
         のxsi:のschemaLocation = "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion> 4.0.0 </ modelVersion> 
    <親> 
        <のgroupId> org.springframework.boot </のgroupId> 
        <たartifactId>ばねブートスタータ親</たartifactId> 
        <バージョン> 2.2.6.RELEASE </バージョン> 
        <relativePath /> <! -リポジトリから検索親- > 
    </親> 
    <groupIdを>デモ・春・ブート・スターター</ groupIdを>
    <たartifactId>デモ</たartifactId>  
    <バージョン> 0.0.1-SNAPSHOT </バージョン>
    <名前>デモ</名前>
    <説明>デモプロジェクトのための春ブーツ</記述> 

    <プロパティ> 
        <のjava.version> 1.8 </java.version> 
    </プロパティ> 

    <依存性> 
        <依存> 
            <groupIdを> org.springframework.boot </ groupIdを> 
            <たartifactId>ばねブートスターター</たartifactId> 
        </依存> 
        <依存性> 
            <のgroupId> org.springframework.boot </のgroupId> 
            <たartifactId>ばねブート自動設定</たartifactId> 
        </依存> 
        <依存性> 
            <groupIdを> org.springframework.boot </ groupIdを>
            <たartifactId>春・ブート・コンフィギュレーション・プロセッサ</たartifactId> 
            <オプション>  </オプション> 
        </依存> 
    </依存関係> 

    <ビルド> 
        <プラグイン> 
            <プラグイン> 
                <のgroupId> org.springframework.boot </のgroupId> 
                <たartifactId>春・ブートのmaven-pluginの</たartifactId> 
            </プラグイン> 
        </プラグイン> 
    </ビルド> 

</プロジェクト>

 

マッピングエンティティクラスコンフィギュレーション情報を定義します。3.

パッケージdemospringbootstart.demo.properties; 

インポートorg.springframework.boot.context.properties.ConfigurationProperties; 

/ ** 
 * @author:VIC 
 * @date:作成者で2020年4月9日15:04 
 構成情報エンティティクラス:* @description 
 * / 
// 設定項目名によるエンティティ・クラスにマップされた同じプレフィックス設定情報、ここで私たちは、「デモ」の接頭辞を指定することができ、この注釈
 // 設定項目についての情報を取得するための接頭辞として次のことができます「のデモを」 
(@ConfigurationPropertiesを=接頭辞"デモ" パブリック クラスDemoProperties { 

    プライベート文字列sayWhat;
     プライベート文字列toWho; 

    公共ストリングgetSayWhat(){
         戻りsayWhat; 
    } 

    公共 ボイドsetSayWhat(文字列sayWhat){
         この .sayWhat = sayWhat。
    } 

    パブリック文字列getToWho(){
         戻りtoWhoと、
    } 

    公共 ボイドsetToWho(文字列toWho){
         この .toWho = toWho。
    } 
}

 

コンフィギュレーション・クラスを定義します。4.

パッケージdemospringbootstart.demo.config。

輸入demospringbootstart.demo.properties.DemoProperties。
輸入demospringbootstart.demo.service.DemoService。
輸入org.springframework.beans.factory.annotation.Autowired;
輸入org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
輸入org.springframework.boot.context.properties.EnableConfigurationProperties。
輸入org.springframework.context.annotation.Bean;
輸入org.springframework.context.annotation.Configuration。

/ ** 
 * @Author:VIC 
 * @Date:午後03時35分2020年4月9日に作成された
 * @description:配置类
 * / 
//@Configurationは何も言わないし、コンフィギュレーション・クラスとして宣言
@Configuration
 // 、ステップ@ConfigurationProperties注釈コンフィグレーションBean上のサポートを有効にするには、注釈を
 // それは、springbootサポート@ConfigurationPropertiesを伝えることです
 // またはあなたも@ConfigurationPropertiesにコメントすることができますクラスのアイデンティティに@Configurationと@Componentを追加し、同じ効果 
@EnableConfigurationProperties(DemoProperties。クラス// @ConditionalOnProperty @Configurationが短い中に発効、かどうかを制御するために使用するには、我々はYMLやプロパティプロファイルによって@Configurationを制御することができるものですノートの設定クラスは有効です。
@ConditionalOnProperty(接頭辞= "デモ"、名前= "いるisOpen"、havingValue = "trueに" のパブリック クラスDemoConfig { 

    @Autowired 
    プライベートDemoPropertiesプロパティ; 

    @Bean 
    公衆DemoService demoService(){
         リターン 新しいDemoService(properties.getSayWhat()、properties.getToWho())。
    } 
}

 

サービスクラスを提供します。5.

以下のためのパッケージ変更demospringbootstart.demo.service; 

/ ** 
 * @author:VIC 
 * @date:午後03時28分2020年4月9日に作成された
 * @description:カジュアルは、何もこのサービスが統合スターターに提供され、ここでは本当にありません、サービスを実装ビジネスパーティコール
 * / 
パブリック クラスDemoService { 

    パブリック文字列sayWhat;
     公共ストリングtoWho; 

    公共DemoService(sayWhat文字、文字列toWho){
         この .sayWhat = sayWhat;
         この .toWho = toWho; 
    } 

    パブリック文字列のsayHelloは(){
         戻り 、これを。 + sayWhat "!!!" + この.toWho; 
    } 
}

 

6.新しいspring.factoriesファイル(重要)

META-INFフォルダにspring.factories次のようにspring.factories文書は読み込み、下に

#この設定ファイルは、springbootはここで設定アセンブリDemoconfigクラスに行く理由として、組立自動化、読者は(ブログに従事する時間を持っている)、実装springbootのSPIメカニズムを見に行くことができます
org.springframework.boot.autoconfigure.EnableAutoConfiguration = demospringbootstart.demo.config.DemoConfig

 

7.テストの使用

上記の手順が完了したら、単に、クリーンインストールMVNスターター生産が完了したカスタマイズ

====================== ======================の境界線

カスタムスターターを使用します

1スタータ依存の導入

<依存性> 
    <のgroupId>デモスプリングブートスタータ</のgroupId> 
    <たartifactId>デモ</たartifactId> 
    <バージョン> 0.0.1-SNAPSHOT </バージョン> 
</依存>

プロフィールの内容を記入2.

demo.isopen = 
demo.to -who = JACK 
demo.say -what = HI

3.書き込みコードは、それを呼び出すと段落を参照するには

パッケージcom.zhaowa.course.design.controller。

輸入demospringbootstart.demo.service.DemoService。
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.RestController;
輸入javax.annotation.Resource; 

/ ** 
 * @Author:VIC 
 * @Date:午後三時53分2020年4月9日に作成された
 * @description:
 * / 
@RestController 
パブリック クラスTestController { 

    @Resource 
    プライベートDemoService demoService。

    @RequestMapping( "/" パブリック文字列試験(){
         リターンdemoService.sayHello(); 
    } 
}

おすすめ

転載: www.cnblogs.com/vicF/p/12667934.html