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. 调用方法                     

springboot自定义starter的更多相关文章

  1. SpringBoot --- 自定义 Starter

    SpringBoot --- 自定义 Starter 创建 1.需要创建一个新的空工程 2.新的工程需要引入两个模块 一个Maven 模块 作为启动器 一个SpringBoot 模块 作为自动配置模块 ...

  2. SpringBoot自定义starter及自动配置

    SpringBoot的核心就是自动配置,而支持自动配置的是一个个starter项目.除了官方已有的starter,用户自己也可以根据规则自定义自己的starter项目. 自定义starter条件 自动 ...

  3. SpringBoot自定义Starter实现

    自定义Starter: Starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦.Starter 提供了一种开箱即用的理念,其中核心就是springboot的自动配置原理相 ...

  4. springboot 自定义starter之AutoConfiguration【原】

    八.自定义starter AutoConfiguration: 1.这个场景需要使用到的依赖是什么? 没有特别依赖的配置 2.如何编写自动配置 @Configuration //指定这个类是一个配置类 ...

  5. SpringBoot自定义starter开发分布式任务调度实践

    概述 需求 在前面的博客<Java定时器演进过程和生产级分布式任务调度ElasticJob代码实战>中,我们已经熟悉ElasticJob分布式任务的应用,其核心实现为elasticjob- ...

  6. SpringBoot系列三:SpringBoot自定义Starter

    在前面两章 SpringBoot入门 .SpringBoot自动配置原理 的学习后,我们对如何创建一个 SpringBoot 项目.SpringBoot 的运行原理以及自动配置等都有了一定的了解.如果 ...

  7. Springboot自定义starter打印sql及其执行时间

    前面写到了通过实现mybatis提供的org.apache.ibatis.plugin.Interceptor接口实现了打印SQL执行时间,并格式化SQL及其参数,如果我们使用的是ssm还得再配置文件 ...

  8. Spring-Boot自定义Starter实践

    此文已由作者王慎为授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. disconf-spring-boot-starter 使用方法: 引入maven依赖: <depen ...

  9. SpringBoot之旅第六篇-启动原理及自定义starter

    一.引言 SpringBoot的一大优势就是Starter,由于SpringBoot有很多开箱即用的Starter依赖,使得我们开发变得简单,我们不需要过多的关注框架的配置. 在日常开发中,我们也会自 ...

随机推荐

  1. CSAPP:第一章学习笔记:斗之气1段

    一.信息就是位+上下文:系统中的所有信息(包括磁盘文件.内存中的程序.网络上传送的数据),都是由一串比特表示,根据上下文对这些比特表示进行翻译. 二.C程序编译过程 1.源码结构 // test.c ...

  2. Cocos Creator 获取当前URL取参数

    利用Javascript获取当前页的URL,这个问题起来好像很复杂,如果第一次去想这个问题,很多人估计又在琢磨到底又是哪个神一般的Javascript函数. 其实不是,Javascript获取当前页的 ...

  3. 后台发送get请求

    第一步:编写Controller,让后台去请求接口 package controller; import java.util.List; import org.springframework.bean ...

  4. JS对象、构造器函数和原型对象之间的关系

    一.基本概念 1.对象:属性和方法的集合,即变量和函数的封装.每个对象都有一个__proto__属性,指向这个对象的构造函数的原型对象. 2.构造器函数:用于创建对象的函数,通过new关键字生成对象. ...

  5. Spring Cloud Gateway Ribbon 自定义负载均衡

    在微服务开发中,使用Spring Cloud Gateway做为服务的网关,网关后面启动N个业务服务.但是有这样一个需求,同一个用户的操作,有时候需要保证顺序性,如果使用默认负载均衡策略,同一个用户的 ...

  6. Centos7 安装redis

    1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.检查及下载gcc gcc -v yum -y inst ...

  7. MyBatis探究-----配置数据源的几种方式

    1.在核心配置文件mybatis-config.xml中配置数据库连接信息 mysql的j驱动jar包是mysql-connector-java-6.0.6.jar mysql版本5.7 <?x ...

  8. C#WFM关于PICBOX 再DIP界面放大125%后,图片显示不完整

    外观哪里选中Zoom,就好

  9. CCF CSP 201812-1 小明上学

    题目链接:http://118.190.20.162/view.page?gpid=T80 问题描述 试题编号: 201812-1 试题名称: 小明上学 时间限制: 1.0s 内存限制: 512.0M ...

  10. redis 在 php 中的应用(string篇)

    本文为我阅读了 redis参考手册 之后结合 博友的博客 编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: string(字符串) SET SETN ...