SpringBoot创建自定义Starter代码实例

 更新时间:2023年11月02日 09:14:17   作者:Heloise_yangyuchang  
这篇文章主要介绍了SpringBoot创建自定义Starter代码实例,自定义 Starter 是一种在软件开发中常用的技术,它可以帮助开发者快速搭建项目的基础框架和配置,可以将一些常用的功能、依赖和配置封装成一个可复用的模块,方便在不同的项目中使用,需要的朋友可以参考下

自定义SpringBoot Starter

引入项目的配置依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
    <version>2.1.4.RELEASE</version>
</dependency>

创建xxxService类

完成相关的操作逻辑

  DemoService.java

@Data
public class DemoService{

    private String str1;

    private String str2;

 }

定义xxxProperties类

属性配置类,完成属性配置相关的操作,比如设置属性前缀,用于在application.properties中配置

//指定项目在属性文件中配置的前缀为str,即可以在属性文件中通过 str.str1=springboot,就可以改变属性类字段 str1 的值了
@SuppressWarnings("ConfigurationProperties")
@ConfigurationProperties(prefix = "str")
@Data
public class DemoProperties {

    public static final String DEFAULT_STR1 = "SpringBoot ";

    public static final String DEFAULT_STR2 = "Starter";

    private String str1 = DEFAULT_STR1;

    private String str2 = DEFAULT_STR2;
   
   }
 

定义xxxAutoConfiguration类

自动配置类,用于完成Bean创建等工作

// 定义 java 配置类
@Configuration
//引入DemoService
@ConditionalOnClass({DemoService.class})
// 将 application.properties 的相关的属性字段与该类一一对应,并生成 Bean
@EnableConfigurationProperties(DemoProperties.class)
public class DemoAutoConfiguration {

    // 注入属性类
    @Autowired
    private DemoProperties demoProperties;

    @Bean
    // 当容器没有这个 Bean 的时候才创建这个 Bean
    @ConditionalOnMissingBean(DemoService.class)
    public DemoService helloworldService() {
        DemoService demoService= new DemoService();
        demoService.setStr1(demoProperties.getStr1());
        demoService.setStr2(demoProperties.getStr2());
        return demoService;
    }

}

在resources下创建目录META-INF

在 META-INF 目录下创建 spring.factories,在SpringBoot启动时会根据此文件来加载项目的自动化配置类

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.demo.springboot.config.DemoAutoConfiguration 

其他项目中使用自定义的Starter

<!--引入自定义Starter-->
<dependency>
    <groupId>com.lhf.springboot</groupId>
    <artifactId>spring-boot-starter-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

编写属性配置文件

#配置自定义的属性信息
str.str1=str1
str.str2=str2

写注解使用

@RestController
public class StringController {

      @Autowired
    private DemoService demoService;  //引入自定义Starter中的DemoService 

      @RequestMapping("/")
      public String addString(){
        return demoService.getStr1()+ demoService.getStr2();
    }
}

 

到此这篇关于SpringBoot创建自定义Starter代码实例的文章就介绍到这了,更多相关SpringBoot自定义Starter内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中FileOutputStream类的使用

    Java中FileOutputStream类的使用

    java.io.FileOutputStream类是文件输出流,用于将数据写出到文件,下面就来介绍一下Java中FileOutputStream类的使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • java面向对象继承与多态介绍

    java面向对象继承与多态介绍

    大家好,本篇文章主要讲的是java面向对象继承与多态介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • spring源码阅读--@Transactional实现原理讲解

    spring源码阅读--@Transactional实现原理讲解

    这篇文章主要介绍了spring源码阅读--@Transactional实现原理讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java8 Collectors求和功能的自定义扩展操作

    Java8 Collectors求和功能的自定义扩展操作

    这篇文章主要介绍了Java8 Collectors求和功能的自定义扩展操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • spring aop注解配置代码实例

    spring aop注解配置代码实例

    这篇文章主要介绍了spring aop注解配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • IntelliJ IDEA编译项目报错

    IntelliJ IDEA编译项目报错 "xxx包不存在" 或 "找不到符号"

    这篇文章主要介绍了IntelliJ IDEA编译项目报错 "xxx包不存在" 或 "找不到符号" ,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • java括号匹配算法求解(用栈实现)

    java括号匹配算法求解(用栈实现)

    这篇文章主要介绍了java括号匹配算法求解(用栈实现),需要的朋友可以参考下
    2020-12-12
  • java中i18n的properties的乱码问题及解决思路

    java中i18n的properties的乱码问题及解决思路

    解决java后台返回给前端的500信息乱码问题,通过开启IDEA的Transparent native-to-ascii conversion编码,使读取i18n配置文件的信息显示正常,此方法仅供参考
    2026-05-05
  • Springboot项目启动时端口被占用的问题及解决

    Springboot项目启动时端口被占用的问题及解决

    这篇文章主要介绍了Springboot项目启动时端口被占用的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • spring boot整合Swagger2的示例代码

    spring boot整合Swagger2的示例代码

    Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的 Web 服务。这篇文章主要介绍了spring boot整合Swagger2,需要的朋友可以参考下
    2017-04-04

最新评论