SpringBoot実戦ノート:15_SpringBootカスタムstarter pom

13633 ワード

15_SpringBootカスタムstarter pom

pom.xmlのspringboot依存はstarterです
目的:あるクラスが存在する場合、このクラスのBeanを自動的に構成し、Beanの書き込みをapplication.propertiesに構成することができる.
  • は、javaを学習するときに、あるプロジェクトをjarパッケージにして、別のプロジェクトで使用することに相当します.

  • 1,Mavenプロジェクトを作成する


    2,pomを修正する.xmlファイル

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0modelVersion>
    
        <groupId>com.zyfgroupId>
        <artifactId>spring-boot-starter-demoartifactId>
        <version>1.0-SNAPSHOTversion>
        <packaging>jarpackaging>
    
        <name>spring-boot-starter-demoname>
        <url>http://maven.apache.orgurl>
    
        <properties>
            <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        properties>
    
        <dependencies>
    
            
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-autoconfigureartifactId>
                <version>1.5.9.RELEASEversion>
            dependency>
    
            <dependency>
                <groupId>junitgroupId>
                <artifactId>junitartifactId>
                <version>3.8.1version>
                <scope>testscope>
            dependency>
        dependencies>
    project>
    

    3、属性構成の追加(タイプが安全な属性構成は実際にはクラスです)

    package com.zyf.spring_boot_stater_demo;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    /**
     * Created by zyf on 2018/3/7.
     */
    // :demo.msg=xxx msg
    // , : DEMO
    @ConfigurationProperties(prefix = "demo")
    public class DemoProperties {
        public static final String MSG = " DEMO";
    
        private String msg = MSG;
    
        public static String getMSG() {
            return MSG;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    }
    

    4,判断根拠クラスとしてクラスDemoServiceを作成する


    このクラスが存在するかどうかによって、このクラスのBeanを作成するかどうかを決定します.
    package com.zyf.spring_boot_stater_demo;
    
    import org.springframework.stereotype.Service;
    
    /**
     * Created by zyf on 2018/3/7.
     */
    // , DemoService , , Bean
    public class DemoService {
        private String msg;
    
        public String say(){
            return "hello:" + msg;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    }
    

    5、自分で定義した自動構成が有効になるにはspringに登録する必要があります。factoriesファイル


    登録ファイルの内容:
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.zyf.DemoServiceAutoConfiguration

    6、このstarterを、ローカルmavenライブラリにインストール


    7、インストール成功


    8、SpringBootプロジェクトを作成し、カスタムstarterをpomにインポート

    <dependencies>
       <dependency>
           <groupId>org.springframework.bootgroupId>
           <artifactId>spring-boot-starter-webartifactId>
           <exclusions>
               <exclusion>
                   <groupId>org.springframework.bootgroupId>
                   <artifactId>spring-boot-starter-tomcatartifactId>
               exclusion>
           exclusions>
       dependency>
    
       <dependency>
           <groupId>org.springframework.bootgroupId>
           <artifactId>spring-boot-starter-jettyartifactId>
       dependency>
    
       <dependency>
           <groupId>org.springframework.bootgroupId>
           <artifactId>spring-boot-starter-testartifactId>
           <scope>testscope>
       dependency>
    
       
       <dependency>
           <groupId>com.zyfgroupId>
           <artifactId>spring-boot-starter-demoartifactId>
           <version>1.0-SNAPSHOTversion>
       dependency>
    dependencies>

    9、右側のMaven Projectsで表示


    10、非常に簡単な実行クラス

    package com.zyf;
    
    import com.zyf.spring_boot_stater_demo.DemoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class Springboot05Application {
    
    
        @Autowired
        DemoService demoService;
    
        @RequestMapping("/")
        public String index(){
            return demoService.say();
        }
    
        public static void main(String[] args) {
            SpringApplication.run(Springboot05Application.class, args);
        }
    }
    

    11、プレゼンテーション


    デフォルトであることがわかります

    12、構成ファイルにdebug=trueを設定すると、自動構成に関する情報が表示されます。


    カスタマイズされたDemoServiceAutoConfigurationが自動的に構成されていることがわかります

    13、プロファイルにdemoを追加する.msg構成

    debug=true
    demo.msg="everybody is good , that's real good!"

    14、ビューの実行