首页 > 其他分享 >spring的Environment类使用介绍

spring的Environment类使用介绍

时间:2023-06-25 14:24:46浏览次数:36  
标签:environment String spring 介绍 Environment 获取 org 属性

org.springframework.core.env.Environment接口是Spring框架的一部分,而不是Spring Boot的特定功能。它提供了一种统一的方式来访问应用程序的配置属性,无论这些属性是通过配置文件、命令行参数、环境变量还是其他来源设置的。

通过Environment接口,可以获取应用程序的各种属性值,包括数据库连接信息、服务端口、外部API密钥等。以下是一些常见的Environment接口的使用方法:

  1. 获取属性值:可以使用getProperty(String key)方法获取指定属性的值,其中key是属性的名称。例如,environment.getProperty("myapp.name")可以获取名为myapp.name的属性值。

  2. 获取默认值:可以使用getProperty(String key, String defaultValue)方法获取指定属性的值,如果属性不存在则返回默认值。

  3. 获取属性集合:可以使用getProperties(String prefix)方法获取指定前缀的所有属性的集合。这对于需要获取一组相关属性的值非常有用。

  4. 检查属性是否存在:可以使用containsProperty(String key)方法检查指定属性是否存在。

  5. 检查激活的配置文件:可以使用getActiveProfiles()方法获取当前激活的配置文件的名称列表。这对于根据不同的环境加载不同的配置非常有用。

除了上述方法之外,Environment接口还提供了其他一些方便的方法,例如获取系统属性、获取应用程序名称等。

需要注意的是,为了使用Environment接口,需要将其注入到Spring Bean中或通过依赖注入框架进行访问。在Spring Boot中,可以使用@Autowired注解或通过构造函数注入。

 

一个简单的示例演示如何在Spring Boot中使用Environment接口

首先,在application.propertiesapplication.yml配置文件中添加以下配置:

 
myapp.name=My Application
myapp.version=1.0.0

然后,创建一个使用Environment接口的Spring Boot组件:

 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
public class MyAppInfo {

    private final Environment environment;

    @Autowired
    public MyAppInfo(Environment environment) {
        this.environment = environment;
    }

    public void printAppInfo() {
        String appName = environment.getProperty("myapp.name");
        String appVersion = environment.getProperty("myapp.version");

        System.out.println("Application Name: " + appName);
        System.out.println("Application Version: " + appVersion);
    }
}

在上面的示例中,通过构造函数注入Environment接口对象,并使用getProperty()方法获取配置属性的值。

接下来,在应用程序的入口类中调用printAppInfo()方法:

 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class MyApp {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(MyApp.class, args);

        // 获取MyAppInfo组件
        MyAppInfo myAppInfo = context.getBean(MyAppInfo.class);
  
        // 输出应用程序信息
        myAppInfo.printAppInfo();
    }
}

 

标签:environment,String,spring,介绍,Environment,获取,org,属性
From: https://www.cnblogs.com/shamo89/p/17502797.html

相关文章

  • springboot里的@ConfigurationProperties注解介绍
    在SpringBoot中,@ConfigurationProperties注解用于将外部配置文件中的属性值绑定到Java类的字段或属性上。通过使用该注解,可以方便地将一组配置属性统一绑定到一个POJO类中,然后在应用程序中使用。以下是@ConfigurationProperties注解的主要特点和使用方式:绑......
  • springboot里的@PropertySource注解介绍
    在SpringBoot中,@PropertySource注解用于加载外部的属性源文件,将其作为配置文件来使用。该注解可以用于标记在Java类上,并指定要加载的属性源文件的位置。使用@PropertySource注解可以很方便地将外部的属性文件加载到Spring的环境中,并可以通过@Value注解或Environ......
  • spring profile 原理
    springboot是如何做到根据配置的springprofile值来决定引用不同环境的application.yml配置文件的? SpringBoot通过使用Spring框架的Profile功能,实现了根据配置的SpringProfile值来决定引用不同环境的application.yml配置文件。在SpringBoot中,可以通过在......
  • 课程介绍:YOLOv8实战火焰和烟雾检测 (视频教程)
    课程链接:https://edu.51cto.com/course/34090.htmlYOLOv8基于先前YOLO版本在目标检测任务上的成功,进一步提升性能和灵活性。本课程将手把手地教大家使用YOLOv8结合可变形卷积(deformableconvolution)训练火焰和烟雾数据集,完成一个多目标检测实战项目,可实时检测图像、视频、摄像......
  • 时速云使用 Higress 替换 Ngnix Ingress + Spring Cloud Gateway 的生产实践
    作者:王金山,北京云思畅想科技有限公司技术部微服务架构师,负责公司API网关和服务网格等研发工作时速云介绍时速云成立于2014年10月,致力于通过云原生技术帮助企业实现数字化转型,拥有云原生应用平台TCAP和云原生数据平台KubeData两大核心产品体系,产品包含云原生DevOps、容器......
  • Uplift Model介绍
    背景CTR、CVR模型建模的是预估看过广告之后的点击率和转化率,称为响应模型(responsemodel),建模的是相关性,但是缺点是没法区分这个点击转化中有多少是广告带来UpliftModel是估计用户因为广告而购买的概率,这是一个因果推断的问题,建模的是营销带来的增量Reponsemodel:P(Y=1∣......
  • Spring和Spring MVC中的常用注解
    spring中的常用注解@Compontent:表示这是spring管理的一个组件@Controller:控制层的组件@Service:业务层的组件@Repository:持久层组件@Autoeire:自动装配注解@Qualifier:Autowired默认是根据类型进行注入的,Qualifier限定描述符除了能根据名字进行注入,更能进行更细粒度的控制如......
  • 【转】SpringBoot 线上服务假死,CPU 内存正常
    文章来源:blog.csdn.net/zhangcongyi420/article/details/1311395991、背景开发小伙伴都知道线上服务挂掉,基本都是因为cpu或者内存不足,出现GC频繁OOM之类的情况。本篇文章区别以上的情况给小伙伴们带来不一样的服务挂掉。 2、问题排查老规矩在集群环境中同一个服务......
  • Maven的maven-resources-plugin插件介绍
    Maven的maven-resources-plugin插件是一个用于处理资源文件的插件。它在Maven构建过程中负责复制项目中的资源文件到生成的目标目录,使得这些资源文件可以被应用程序访问和使用。该插件具有以下特点和功能:复制资源文件:maven-resources-plugin插件会将项目中的资源文件(如......
  • spring源码笔记
    Bean创建流程获取对象的BeanDefinition通过反射创建空对象填充属性调用init方法  Bean创建关键方法(按顺序)getBeandoGetBeancreateBeandoCreateBeancreateBeanInstancepopulateBean  解决循环依赖:三级缓存循环依赖原因单例,每个类只有一个对象。A引用B,B又......