返回顶部
首页 > 资讯 > 后端开发 > Python >Spring外部化配置的几种技巧分享
  • 883
分享到

Spring外部化配置的几种技巧分享

2024-04-02 19:04:59 883人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录正文Envrionment 获取外部配置修改spring默认配置文件名称Value注解配置来源外部化配置文件优先级问题Autowire注入ConfigurableEnvrionm

正文

Envrionment 获取外部配置


@Log4j2
@SpringBootApplication
public class ConfigurationApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigurationApplication.class, args);
    }
    @Bean
    ApplicationRunner applicationRunner(Environment environment){

        return  args -> {
            log.info("user.name : {}",environment.getProperty("user.name"));
        };
    }
}

修改Spring默认配置文件名称

启动程序参数中加入如下配置:


--spring.config.name=app

Value注解配置来源

配置文件


@Bean
ApplicationRunner applicationRunner(Environment environment,
                           @Value("${greeting.message:hello boy}") String message){

   return  args -> {
      log.info("from application.properties user.name : {}",environment.getProperty("user.name"));
      log.info("from application.properties greeting.message : {}",message);

   };
}

默认值

value注解通过冒号来配置默认值:


@Value("${greeting.message:hello boy}")

获取环境变量值

获取程序参数值

外部化配置文件优先级问题

如果有application.properties在springboot 启动jar包同一目录,会优先读取这个文件中的配置。

Autowire注入ConfigurableEnvrionment


public static void main(String[] args) {

        new SpringApplicationBuilder()
                .sources(ConfigurationApplication.class)
                .run(args);
}

@Autowired
void getConfigurableEnvrionment(ConfigurableEnvironment environment) {
    environment.getPropertySources().addLast(new MyPropertySource());
}

ApplicationInitialiazer 配置


    public static void main(String[] args) {

        new SpringApplicationBuilder()
                .sources(ConfigurationApplication.class)
                .initializers(applicationContext ->
                 applicationContext.getEnvironment().getPropertySources().addLast(new MyPropertySource()))
                .run(args);
    }

static  class  MyPropertySource extends PropertySource<String>{


   public MyPropertySource() {
      super("myproperty");
   }

   @Override
   public Object getProperty(String name) {

      if(name.equalsIgnoreCase("author-name")){
         return  "john";
      }
      return null;
   }
}

然后通过@Value注解注入获取author-name:


    @Bean
    ApplicationRunner applicationRunner(Environment environment,
                                        @Value("${greeting.message:hello boy}") String message,
                                        @Value("${author-name}") String name){

        return  args -> {
            log.info("from application.properties user.name : {}",environment.getProperty("user.name"));
            log.info("from application.properties author.name : {}",name);
        };
    }

总结

Spring的Environment抽象有很多值得学习的地方,期待下一期每日小技巧。

以上就是Spring外部化配置的几种技巧分享的详细内容,更多关于Spring外部化配置的资料请关注编程网其它相关文章!

--结束END--

本文标题: Spring外部化配置的几种技巧分享

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

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

猜你喜欢
  • Spring外部化配置的几种技巧分享
    目录正文Envrionment 获取外部配置修改Spring默认配置文件名称Value注解配置来源外部化配置文件优先级问题Autowire注入ConfigurableEnvrionm...
    99+
    2024-04-02
  • 分享Spring Cloud OpenFeign 的五个优化技巧
    目录一、超时优化1、设置Ribbon超时时间2、设置OpenFeign超时时间二、请求连接优化1、引入Apache HttpClient依赖2、开启Apache HttpClient...
    99+
    2024-04-02
  • 分享JPA的几个小技巧
    目录1. 基本字段介绍2. 自定义ID生成器3. 自动填充字段4. End关系型数据库其实很讨人厌,尤其是在你使用数据库驱动的开发模式时。需要首先把表给创建好了,然后再使用代码生成器...
    99+
    2024-04-02
  • Spring boot外部配置的示例分析
    这篇文章给大家分享的是有关Spring boot外部配置的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言在项目中为了灵活配置,我们常采用配置文件,常见的配置文件就比如xml和properties,sp...
    99+
    2023-05-30
    springboot
  • Spring boot读取外部化配置的方法
    目录1. Properties / YAML1.1 Environment1.2 Value注解2. 自定义Properties文件3. 其他命令参数总结这篇文章我们主要讨论 Spr...
    99+
    2024-04-02
  • 几个关于pythonPdf技巧的分享
    目录1.读取PDF2.删除pdf的某些页3.旋转页面4.合并pdf前言: PyPDF2是一个纯Python的开源库,能够分割或合并PDF文件,也可以裁剪或转换PDF文件中的页面。我们...
    99+
    2024-04-02
  • Spring boot读取外部化怎么配置
    本篇内容主要讲解“Spring boot读取外部化怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring boot读取外部化怎么配置”吧!1. Propertie...
    99+
    2023-06-29
  • 详解Spring中的Environment外部化配置管理
    目录profilesProfileService声明一个配置类定义测试方法profiles总结Propertiesenvironment的应用指定profile属性@Value注解的...
    99+
    2024-04-02
  • 阿里云服务器配置调整优化技巧分享
    本文将分享如何根据自身业务需求进行阿里云服务器的配置调整优化,包括CPU、内存、磁盘空间等参数的设置,以及网络配置、安全设置等,以提高服务器的运行效率和安全性。 一、CPU配置调整CPU是服务器的核心部件,其性能直接影响服务器的处理速度。在...
    99+
    2023-11-06
    阿里 服务器配置 技巧
  • 分享shell编程中的几个小技巧
    1、打印一些头信息command << dilimiter…………dilimiter 以分界符号dilimiter中的内容作为命令的标准输入常用在echo命令中,这样就避免了没输出一行就要使...
    99+
    2022-06-04
    几个 小技巧 shell
  • 分享几个Java工作中实用的代码优化技巧
    目录1.类成员与方法的可见性最小化2.使用位移操作替代乘除法3.尽量减少对变量的重复计算4.不要捕捉RuntimeException5.使用局部变量可避免在堆上分配6.减少变量的作用...
    99+
    2024-04-02
  • 优化SQL语句的技巧分享
    这篇文章给大家介绍优化SQL语句的技巧分享,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。建立索引不是建的越多越好,原则是:第一:一个表的索引不是越多越好,也没有一个具体的数字,根据以往...
    99+
    2024-04-02
  • Spring创建bean实例的几种方式分享
    目录前言环境通过bean的class属性创建实例(带参构造器)工厂方法(静态工厂方法)工厂方法(实例工厂方法)工厂bean总结前言 Spring常见的创建bean实例的方式有: 1....
    99+
    2024-04-02
  • 分享PyCharm配置技巧:提升编程效率
    PyCharm是一款功能强大的集成开发环境,为Python程序员提供了便捷的开发工具。在使用PyCharm进行开发时,合理配置环境可以提高工作效率,让编程变得更加顺畅。本文将分享一些P...
    99+
    2024-02-26
    pycharm 环境配置 技巧分享 python程序
  • 专业技巧分享:用dedecms消灭网站广告的几种方式
    【标题】专业技巧分享:用dedecms消灭网站广告的几种方式 在互联网时代,网站广告已经成为许多网站盈利的重要途径,但过多的广告不仅会影响用户体验,还可能降低网站的访问量。为了提升网站...
    99+
    2024-03-12
    技巧 dedecms 网站广告 css选择器
  • 分享几个JavaScript运算符的使用技巧
    目录一、可选链接运算符【?.】二、逻辑空分配(?? =)三、逻辑或分配(|| =)四、逻辑与分配(&& =)最后ECMAScript发展进程中,会有很...
    99+
    2024-04-02
  • Spring boot 启动流程及外部化配置方法
    目录Main 入口SpringApplication判断运行环境初始化器和监听器总结执行 run 方法环境变量及配置prepareEnvironmentgetOrCreateEnvi...
    99+
    2022-12-08
    Spring boot 启动流程 springboot外部化配置
  • Nginx的几个常用配置和技巧
    文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了!一个站点配置多个域名server {    listen    &n...
    99+
    2023-06-03
  • Spring Boot配置排序依赖技巧的示例分析
    这篇文章主要介绍Spring Boot配置排序依赖技巧的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:Spring Boot - 被错误使用的注解我自己曾经在 Spring Boot 中集成通用 M...
    99+
    2023-05-30
    spring boot
  • 分享几个写简洁java代码的小技巧
    目录1.定义配置文件信息2.用@RequiredArgsConstructor代替@Autowired3.不要返回null4.ifelse5.减少controller业务代码6.将字...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作