码迷,mamicode.com
首页 > 编程语言 > 详细

springboot自定义starter

时间:2019-04-22 15:12:55      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:ati   loser   tor   mave   创建   ima   .config   工程   自动   

1,创建一个空工程

2,new一个Modules  ---------------- maven (启动器) :

springboottest-spring-boot-starter

3,new一个Modules  ---------------- spring(做自动配置的):

springboottest-spring-boot-starter-autoconfigurer

4,启动器pom文件中引入自动配置模块:

    <!--启动器-->
     <dependencies>
         <!--引入自动配置模块-->
          <dependency>
              <groupId>com.springboottest.starter</groupId>
              <artifactId>springboottest-spring-boot-starter-autoconfigurer</artifactId>
              <version>0.0.1-SNAPSHOT</version>
          </dependency>
     </dependencies>

5,自动配置器中,删除主主程序等不需要的内容并编写启动器:

  1. pom文件中引入启动器(所有starter的基本配置):
    <dependencies>
            <!--引入spring-boot-starter-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
        </dependencies>

     

  2. 编写会被调用的service技术图片
  3. package com.springboottest.starter;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    //绑定文件中所有以springboottest.hello 开始的配置
    @ConfigurationProperties(prefix = "springboottest.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;
        }
    }
    package com.springboottest.starter;
    
    public class HelloService {
       HelloProperties helloProperties;
    
    
        public HelloProperties getHelloProperties() {
            return helloProperties;
        }
    
        public void setHelloProperties(HelloProperties helloProperties) {
            this.helloProperties = helloProperties;
        }
    
        public  String sayHello(String name){
          return  helloProperties.getPrefix()+"-"+ name + helloProperties.getSuffix();
        };
    }
    package com.springboottest.starter;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @ConditionalOnWebApplication//web应用才生效
    @EnableConfigurationProperties(HelloProperties.class)//让属性生效 HelloProperties helloProperties;
    public class HelloServiceAutoConfiguration {
    
        //让属性生效 HelloProperties helloProperties;
        @Autowired
        HelloProperties helloProperties;
        @Bean
        public  HelloService helloService(){
            HelloService service = new HelloService();
            service.setHelloProperties(helloProperties);
            return  service;
        }
    
    }

     

  4. 配置spring.factories让自动配置类生效
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.springboottest.starter.HelloServiceAutoConfiguration

     

  5. springboottest-spring-boot-starter  启动器编写完成

6,新建项目,调用自定义启动器的方法

  1. pom文件引入自定义启动器
    <!--引入自定义starter-->
            <dependency>
                <groupId>com.springboottest.starter</groupId>
                <artifactId>springboottest-spring-boot-starter</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
  2. 按照规则编写properties,增加前后缀
    springboottest.hello.prefix=SPRINGBOOT
    springboottest.hello.suffix=HELLO WORLD
  3. 调用方法                      技术图片

springboot自定义starter

标签:ati   loser   tor   mave   创建   ima   .config   工程   自动   

原文地址:https://www.cnblogs.com/MagicAsa/p/10750180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!