customize spring-boot-starter

1. 先参考官方的写法

例如:spring-boot-starter-web

@Configuration 		//指定这个类是一个配置类
@ConditionalOnMissingBean@ConditionalOnClass
@ConditionalOnXXX 	//在指定条件成立的情况下 自动配置类生效
@AutoConfigureAfter //指定自动配置类的顺序
@Bean 					//给容 器中添加组件

@ConfigurationPropertie 结合相关xxxProperties类来绑定相关的配置
@EnableConfigurationProperties //让xxxProperties生效加入到容 器中
   
自动配置类要能加载
将需要启动就加载的自动配置类,配置在 META-INF /spring.factories
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,\

2. 自定义Starterstarter :

1、这个场景需要使用到的依赖是什么?

2、如何编写自动配置

3、模式:

  1. 启动器(starter)启动器只用来做依赖导入,依赖专门来写一个自动配置模块,启动器依赖自动配置,别人只需要引入启动器 例如:spring-boot-starter-web 作用只是导入依赖,依赖里面有具体实现

  2. 官方命名规范:前缀 “spring-boot-starter-[模块名]” 例如:“spring-boot-starter-web”

    自定义命名规范:后缀 “-spring-boot-starter” 例如:“mybatis-spring-boot-starter”

实例步骤:

  1. 先建一个空项目,以Maven 空项目作为启动器 快速构建作为依赖配置
  2. 导入将要写的依赖坐标
    依赖管理
  3. 编写 依赖实现 (删掉主方法和测试方法,以及test和junit坐标)
public class HelloService {
   
    HelloProperties helloProperties;

    public String sayHello(String name){
        return helloProperties.getPrefix()+name+""+helloProperties.getSuffix();
    }
   
    public HelloProperties getHelloProperties() {
        return helloProperties;
    }

    public void setHelloProperties(HelloProperties helloProperties) {
        this.helloProperties = helloProperties;
    }
}
@ConfigurationProperties(prefix = "whgc.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;
    }
}
@Configuration
@ConditionalOnWebApplication //web 应用才生效
@EnableConfigurationProperties(HelloProperties.class)   //这样HelloProperties属性文件就生效了
public class HelloServiceAutoConfiguration {

    @Autowired
    HelloProperties helloProperties;
    @Bean
    public HelloService getHelloService(){
        HelloService hs = new HelloService();
        hs.setHelloProperties(helloProperties);
        return hs;
    }
}

详细视图 在这里插入图片描述
4. install 依赖 到 本地Maven (双击【install】)在这里插入图片描述
install 启动器 到本地 Maven在这里插入图片描述

使用自定义starter

  1. 引入启动器的坐标在这里插入图片描述

  2. 编写控制器及yaml文件

    @RestController
    public class HelloController {
        @Autowired
        HelloService helloService;
        @GetMapping("/hello")
        public String hello(){
            return helloService.sayHello("---hello---");
        }
    }
    
    whgc:
      hello:
        prefix: 你好
        suffix: Hello World
    
  3. 启动测试在这里插入图片描述
    不知道怎么滴每次 写hello world都异常的兴奋,完结。小白的一次进阶不容易

源文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值