zoukankan      html  css  js  c++  java
  • springboot自定义starter

    1,创建一个空工程  new -  project - emptyproject

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

    springboottest-spring-boot-starter

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

    springboottest-spring-boot-starter-autoconfigurer   spring版本:1.5.10

    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. 两个项目分别install
    7. 加载完成,现在可以在别的项目里面调用

    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. 调用方法                     
  • 相关阅读:
    框架-前端框架:layui
    开发模式-敏捷开发:什么是敏捷开发
    公司-便利蜂:便利蜂
    人物-IT-周鸿祎:百科
    公司-人人网:人人网
    未来-YLB-二手市场:二手市场
    未来-YLB-跳蚤市场:跳蚤市场(flea market)
    公司-浪潮:浪潮/inspur
    禁止CloudStack删除Xenserver原有虚拟机
    2.6.33中关于at91sam9260的i2c controller驱动的问题
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/10750180.html
Copyright © 2011-2022 走看看