当前位置: 首页 > 知识库问答 >
问题:

Spring引导-获取环境变量

汝志
2023-03-14

我必须得到一个环境变量,我不能注射。

@Component
@EnableConfigurationProperties
public class Client {

    @Autowired
    RestTemplate restTemplate;

    @Value("${BASE_URL}")
    private String baseUrl;

    public List<Car> getAllCars(){
        ResponseEntity<List<Car>> res = restTemplate.exchange(baseUrl.concat("/car"),HttpMethod.GET,null, 
                new ParameterizedTypeReference<List<Car>>() {});
        return res.getBody();
    }
}

我无法注入环境中的basUrl。

有人能告诉我怎么做吗?

我读了以下几页,我是初学者,因为我什么都不懂。https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.htmlhttps://www.mkyong.com/spring-boot/spring-boot-configurationproperties-example/

我也试过。

@Autowired
private Environment env;

结果始终为空。

共有1个答案

俞涵涤
2023-03-14

请尝试

@Value("#{systemProperties['BASE_URL']}")
 类似资料:
  • 因此,我一直在试图弄清楚如何在两个应用程序中使用环境变量。属性或application.yaml。由于这在无数的框架中都能工作(例如Laravel),所以我认为这在Spring Boot中也能工作。现在我发现,情况并非如此。 我看到一篇关于Spring Environment API的帖子,它开始说环境变量SPRING_DATASOURCE_URL将等同于在我的应用程序中设置spring.data

  • 问题内容: 已在Windows机器(Windows 7)中设置了环境变量,并尝试从以下Java代码获取变量的值。但是,它返回一个空值。 现在,如果我执行以下代码,它将引发安全异常,这意味着用户没有该变量。 后来,我在JRE安全策略文件中添加了权限,并添加了以下条目,但仍返回空值。 问题答案: 此代码段不应返回null以便解决您的问题。

  • 问题内容: 我正在为红宝石应用程序构建一个容器。我的应用程序的配置包含在环境变量中(通过dotenv加载到应用程序内部)。 这些配置变量之一是应用程序的公共ip,它在内部用于建立链接。我需要添加一个dnsmasq条目,将该ip指向容器内部的127.0.0.1,以便它可以获取应用程序的链接,就好像未对其进行容器化一样。 因此,我试图在我的Dockerfile中设置一个将环境变量传递给容器的。 我尝试

  • 问题内容: 从 尚未在Dockerfile中声明的Docker 容器获取环境变量的最简单方法 是什么 ? 例如,通过某个会话设置的环境变量? 我可以做到,但是我更喜欢只返回值的东西。 我尝试使用,但是替换似乎发生在容器外部,因此我没有从容器中获取env var,而是从我自己的计算机中获取了env var。 谢谢。 问题答案: 在容器中运行以使变量替换发生在容器中的正确方法是:

  • 我正在使用Apache Camel 2.16.0和Spring DSL我有一个Spring上下文XML,我在其中定义了一个Property PlaceHolder来从各种文件中读取属性,如下所示- 属性值用于构造其他bean,例如- 这工作正常,我可以看到正在创建的bean。我在同一个应用程序中还有另一个Spring Context XML,它具有骆驼上下文,我想使用相同属性文件中定义的其他一些属

  • 这是一个按照字母顺序排序的,由Autoconf检查的环境变鼠的列表。 a AC_MACRODIR, AC_MACRODIR, AC_MACRODIR, AC_MACRODIR, AC_MACRODIR, AC_MACRODIR c CONFIG_FILES CONFIG_HEADERS CONFIG_SHELL CONFIG_SITE CONFIG_STATUS s SIMPLE_BACKUP_S