编程知识 cdmana.com

springBoot 自定义 starter 插件

  • 例如 xxx-boot-start. 类似很多这种配置,自己也可以实现自己的插件。多模块工程中插件形式很多,针对多模块工程写了几个插件。
maven 依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
  • 写spring.factories方式
@Configuration
@ConfigurationProperties(prefix = "cache")
@Data
public class CacheProperty {


    private Boolean enable;
    private long duration;
    private int initialCapacity;
    private long maximumSize;
    private String type;


}
@Configuration
//扫描ioc 的bean 可以扫描第三方包
/**
 * 或者 使用
 * ComponentScan 包扫描 扫描包下的bean 也行
 * EnableConfigurationProperties 注入配置类也可以
 */
@EnableConfigurationProperties(CacheProperty.class)
//@ComponentScan("org.redorblack.*")
public class CacheAutoConfiguration {




    @Bean
    public Cache<String, Object> creatCaffeineCache(CacheProperty cacheProperty) {
        return Caffeine.newBuilder()
                //设置最后一次写入或访问后经过固定时间过期
                .expireAfterWrite(cacheProperty.getDuration(), TimeUnit.valueOf(cacheProperty.getType()))
                //初始化缓存空间大小
                .initialCapacity(cacheProperty.getInitialCapacity())
                //最大缓存数
                .maximumSize(cacheProperty.getMaximumSize())
                //打开value的弱引用
                .weakValues()
                //打开key的弱引用
                .weakKeys()
                .build();
    }


}
## resources 下面新建META-INA文件夹 新建 spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  org.redorblack.CacheAutoConfiguration

一个简单的starter就完成了

版权声明
本文为[Redorblack]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000038538697

Scroll to Top