SpringBootスターターを達成する方法

スターターはSpringBoot、スターター同等のモジュールで非常に重要な概念である、モジュールは、条件に基づいて豆とモジュールの自動設定内の必要な依存関係を統合することができます。ユーザーは、SpringBootを自動的にスキャンして、適切なモジュールをロードし、例えば、我々はSpringBootプロジェクトを作成するときに、しばしばとして導入することができ、あまりにも多くの構成や依存関係を必要としない、対応する関数のスターターに依存する必要がありspring-boot-starter-web、この依存性の依存性を当社デフォルトの設定の多くを行わない、もはやに依存する必要がありspring-webspring-webmvcおよびその他の関連するパッケージ構成と、すぐにそれを使用することができるようにします。

この記事では、スターターを定義する方法の簡単な場合について説明し

まず、スターターを書きます

1、輸入に依存

ここではApacheに置き換えSpringBootコンパイルが来るか、カザフスタンのメインクラスを見つけることができるようになります

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

2.コメントを定義します。

メソッドが実行されると、注釈は、ログ出力をマーク

/**
 * @author Gjing
 **/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Print {
    
}

3、書き込みはAOPプロセスをノート

ここでAOPによってAOPに慣れていない場合、あなたは私の記事を参照することができ、プロセスをコメントしますSpringBootは、AOPを使用

/**
 * @author Gjing
 **/
@Aspect
@Component
public class PrintProcess {

    @Pointcut("@annotation(com.gjing.Print)")
    public void cut() {

    }

    @Around("cut()")
    public Object printCut(ProceedingJoinPoint joinPoint) throws Throwable {
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        System.out.println("方法: " + method.getName() + " 开始执行, 当前时间: " + LocalDateTime.now());
        Object proceed = joinPoint.proceed();
        System.out.println("方法: " + method.getName() + " 执行结束, 当前时间: " + LocalDateTime.now());
        return proceed;
    }
}

4、設定クラスを作成

/**
 * @author Gjing
 **/
@Configuration
public class PrintConfiguration {

    @Bean
    public PrintProcess printProcess() {
        return new PrintProcess();
    }
}

図5に示すように、自動組立構成

リソースにフォルダを作成しMETA-INFたパッケージ、および作成しspring.factories、次のように、ファイルを
パッケージ
次のようにspring.factories文書が読み取ります

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.gjing.PrintConfiguration

どこ=コンフィギュレーションクラスのための右の数は、あなたがパッケージ名を指定する必要があります

第二に、テストプロジェクトを作成します

1、輸入に依存

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--这个为我们定义的starter-->
<dependency>
    <groupId>com.gjing</groupId>
    <artifactId>my-starter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

図2に示すように、インターフェースを定義します

我々は、インターフェイスを定義し、で定義されたメソッドにアノテーションスターターを使用します

/**
 * @author Gjing
 **/
@RestController
public class TestController {

    @PostMapping("/test")
    @Print
    public String test() {
        return "ok";
    }
}

3、テストを実行します

プロジェクトとテストを開始し、コンソールログからの出力を見ることができます:
コンソール

4、要約

上記の例からわかるように、我々は、このアノテーションを使用する場合、追加の設定がSpringBoot何である、それを使用することができるようになりますやらなかった自動組立は、伝統的な春のプロジェクトで、私たちはしばしば必要とする、利便性をもたらしますそして手動で少し面倒で複雑なように見えたSpringのIoCコンテナ管理にいくつかを設定します。


この記事は、唯一の簡単な例を挙げて、記事を終了、読者が行くために自分自身で探索することができますが、より高レベルの使用量は、これが説明されていません。この記事任意の遅れがある場合は、コメント領域にメッセージを残すことができます。この記事のデモ住所:SpringBoot-デモ

おすすめ

転載: yq.aliyun.com/articles/709389