iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >spring boot如何实现自定义配置源
  • 272
分享到

spring boot如何实现自定义配置源

springboot 2023-05-30 23:05:27 272人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关Spring Boot如何实现自定义配置源的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述我们知道,在spring boot中可以通过xml或者@ImportResource 来引入自

这篇文章给大家分享的是有关Spring Boot如何实现自定义配置源的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

概述

我们知道,在spring boot中可以通过xml或者@ImportResource 来引入自己的配置文件,但是这里有个限制,必须是本地,而且格式只能是 properties(或者 yaml)。那么,如果我们有远程配置,如何把他引入进来来呢。

如何做

其实自定义配置源只需要3步

第一步,编写PropertySource

编写一个类继承EnumerablePropertySource,然后实现它的抽象方法即可,抽象方法看名字就知道作用,简单起见,这里使用一个map来保存配置,例如:

public class MyPropertySource extends EnumerablePropertySource<Map<String,String>> {  public MyPropertySource(String name, Map source) {    super(name, source);  }  //获取所有的配置名字  @Override  public String[] getPropertyNames() {    return source.keySet().toArray(new String[source.size()]);  }  //根据配置返回对应的属性  @Override  public Object getProperty(String name) {    return source.get(name);  }}

第二步,编写PropertySourceLocator

PropertySourceLocator 其实就是用来定位我们前面的PropertySource,需要重写的方法只有一个,就是返回一个PropertySource对象,例如,

public class MyPropertySourceLocator implements PropertySourceLocator {  @Override  public PropertySource<?> locate(Environment environment) {    //简单起见,这里直接创建一个map,你可以在这里写从哪里获取配置信息。    Map<String,String> properties = new HashMap<>();    properties.put("myName","lizo");    MyPropertySource myPropertySource = new MyPropertySource("myPropertySource",properties);    return myPropertySource;  }}

第三步,让PropertySourceLocator生效

新建一个配置类,例如

@Configurationpublic class MyConfigBootstrapConfiguration {  @Bean  public MyPropertySourceLocator myPropertySourceLocator(){    return new MyPropertySourceLocator();  }}

最后再创建/更新 META-INFO/spring.factories(如果做过自定义Spring boot开发的都知道这个文件)

org.springframework.cloud.bootstrap.BootstrapConfiguration=\com.lizo.MyConfigBootstrapConfiguration

简单来说就是给Spring Boot说,这个是一个启动配置类(一种优先级很高的配置类)。

编写测试

测试一

@SpringBootApplicationpublic class Test2 {  public static void main(String[] args) throws sqlException {    ConfigurableApplicationContext run = SpringApplication.run(Test2.class, args);    Ser bean = run.getBean(Ser.class);    System.out.println(bean.getMyName());  }  @Component  public static class Ser{    @Value("${myName}")    private String myName;    public String getMyName() {      return myName;    }    public void setMyName(String myName) {      this.myName = myName;    }  }}

正确输出

测试二

我们在application配置文件中,引入这个变量呢,例如在application.properties中

my.name=${myName}

同样,结果也是能够生效的

myName就是上面在PropertySourceLocator中写进去的配置属性。运行程序,可以看见确实是可以正确输出。

感谢各位的阅读!关于“spring boot如何实现自定义配置源”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: spring boot如何实现自定义配置源

本文链接: https://www.lsjlt.com/news/222403.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • spring boot如何实现自定义配置源
    这篇文章给大家分享的是有关spring boot如何实现自定义配置源的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述我们知道,在Spring boot中可以通过xml或者@ImportResource 来引入自...
    99+
    2023-05-30
    springboot
  • 详解Spring Boot中如何自定义SpringMVC配置
    目录前言一、SpringBoot 中 SpringMVC 配置概述二、WebMvcConfigurerAdapter 抽象类三、WebMvcConfigurer 接口四、WebMvc...
    99+
    2022-11-12
  • Spring Boot读取自定义配置文件
    目录@Value @ConfigurationProperties 显式注入 Spring IoC @EnableConfigurationProperties @Configura...
    99+
    2022-11-12
  • Spring Boot自定义Starter组件开发实现配置过程
    目录自定义starter为什么要自定义starter自定义starter的命名规则实现方法引入依赖编写测试类创建配置类创建spring.factories文件乱码问题解决方案:1. ...
    99+
    2022-11-13
  • Spring boot 自定义 Starter及自动配置的方法
    目录Starter 组件简介自定义 Starter 组件Starter 组件使用 StarterStarter 传参自身与第三方维护Starter 组件简介 Starter 组件是 ...
    99+
    2022-12-08
    Spring boot 自定义 Starter Spring boot自动配置
  • Spring Boot怎么读取自定义配置文件
    这篇文章给大家分享的是有关Spring Boot怎么读取自定义配置文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。@Value首先,会想到使用@Value注解,该注解只能去解析yaml文件中的简单类型,并绑定到...
    99+
    2023-06-15
  • Spring Boot如何自定义starter
    这篇文章主要介绍Spring Boot如何自定义starter,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、简介SpringBoot 最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我...
    99+
    2023-06-02
  • 如何实现自动配置Spring Boot框架
    本篇文章为大家展示了如何实现自动配置Spring Boot框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、新建starter的Maven项目我这里以IntelliJ IDEA创建Project...
    99+
    2023-05-31
    springboot 自动配置 spring boo
  • spring boot 自定义starter的实现教程
    spring boot 使用 starter 解决了很多配置问题, 但是, 他是怎么来解决这些问题的呢?这里通过一个简单的例子, 来看一下, starter是怎么来设置默认配置的.一. 建 starter 项目自定义的starter...
    99+
    2023-05-30
    spring boot 自定义
  • 在Spring Boot项目中如何实现自定义PropertySourceLoader
    今天就跟大家聊聊有关在Spring Boot项目中如何实现自定义PropertySourceLoader,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SpringBoot 的配置文件...
    99+
    2023-05-31
    propertysourceloader springboot ce
  • 在spring-boot项目中如何实现自定义filter
    在spring-boot项目中如何实现自定义filter?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。传统的javaEE增加Filter是在web.xml中配置...
    99+
    2023-05-31
    springboot 自定义 filter
  • Spring Boot之Validation自定义实现的方法
    这篇“Spring Boot之Validation自定义实现的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“S...
    99+
    2023-07-02
  • Spring boot中如何配置Mybatis多数据源
    本篇文章为大家展示了Spring boot中如何配置Mybatis多数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。环境准备实验环境:JDK 1.8Spring...
    99+
    2022-10-18
  • Spring Boot之Validation自定义实现方式的总结
    目录Validation自定义实现方式Spring Boot Validation定制使用自定义的注解自定义执行Validator自定义Validation注解场景说明源码总结Val...
    99+
    2022-11-13
  • ssl如何实现在spring boot中配置
    ssl如何实现在spring boot中配置 ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ssl协议位于tcp/ip协议与各种应用协议之间,为数据通信提供安全支持。ssl...
    99+
    2023-05-31
    springboot spring boo ssl
  • JAVA Spring Boot 自动配置实现原理详解
    目录引言主启动类的注解@SpringBootApplication1、@SpringBootConfiguration2、@ComponentScan3、@EnableAutoCon...
    99+
    2022-11-12
  • 详解Spring Boot整合Mybatis实现 Druid多数据源配置
    一、多数据源的应用场景目前,业界流行的数据操作框架是 Mybatis,那 Druid 是什么呢?Druid 是 Java 的数据库连接池组件。Druid 能够提供强大的监控和扩展功能。比如可以监控 SQL ,在监控业务可以查询慢查询 SQL...
    99+
    2023-05-31
    spring 多数据源 spring boo
  • 如何解决Spring boot数据源未配置异常
    本篇内容主要讲解“如何解决Spring boot数据源未配置异常”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决Spring boot数据源未配置异常”吧!Spring boot 数据源未...
    99+
    2023-06-20
  • Spring Boot下如何自定义Repository中的DAO方法
     环境配置介绍jdk 1.8, spring Boot 1.5.3.RELEASE, MySQL, Spring Data, JPA问题描述Spring Data提供了一套简单易用的DAO层抽象与封装,覆盖的CURD的基本功能,但...
    99+
    2023-05-31
    spring boot repository
  • 利用Spring Boot框架如何实现跨域与自定义查询功能
    利用Spring Boot框架如何实现跨域与自定义查询功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。跨域请求定义:当我们从本身站点请求不同域名或端口的服务所提供的资源时...
    99+
    2023-05-31
    springboot 自定义查询 跨域
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作