SpringBoot获取application配置文件中参数的三种方式

application.yml中配置:

test:
   msg: hello springboot

方式一:使用@Value方式

 @RestController  
 public class WebController {  
    @Value("${test.msg}")  
    private String msg;       

    @RequestMapping("/index1")   
    public String index1(){  

        return "方式一:"+msg;  

    } 

}

方式二:使用Environment方式

package Solin.controller;  
  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.beans.factory.annotation.Value;  
import org.springframework.core.env.Environment;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
@RestController  
public class WebController {  
    @Autowired  
    private Environment env;  
      
    @RequestMapping("/index2")   
    public String index2(){  
        return "方式二:"+env.getProperty("test.msg");  
    }  
}

方式三: @ConfigurationProperties(prefix = "") 注解

对于单个变量的配置,以上足以满足。但是当配置需要有很多的时候,通过【方式一】或【方式二】一个个写很麻烦。这里介绍使用 @ConfigurationProperties(prefix = "") 注解形式,项目中使用 application.yml中参数配置

1、在application.yml中添加配置

application:
  serverConfig:
    address: localhost
    port: 22
    username: geiri
    password: 12345678

2、建配置类

package com.pn.ebs.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "application")
public class ApplicationProperties {

    private ServerConfig serverConfig = new ServerConfig();

    public ServerConfig getServerConfig() {
        return serverConfig;
    }
    public final class ServerConfig{
        private String address;
        private String port;
        private String username;
        private String password;
        // geter/setter 此处略
    }

}

说明一下:prefix = "application"是application.yml文件中 配置(如配置文件)的名称。ServerConfig 类,对应配置文件中的 serverConfig,还可以application下面扩展增加其他配置,只需在 ApplicationProperties增加 例如serverConfig 属性即可,类似于一个JavaBean。

3、使用

在使用的类中 @Autowired 一下ApplicationProperties。

@Autowired
ApplicationProperties applicationProperties;

然后,具体使用:

ApplicationProperties.ServerConfig serverConfig = applicationProperties.getServerConfig();
 ShellUtil.shellCommand(serverConfig.getAddress(), serverConfig.getUsername(),serverConfig.getPassword(), descCommand);

这里是测试代码:

 

执行结果:

 

 

 

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot,有多种方式可以获取application配置文件的值。其一种方式是使用@Value注解。通过在JavaBean使用@Value("${property}")注解,可以将配置属性注入到JavaBean,并通过JavaBean获取自定义属性的值。另外,还可以使用Environment方式或@ConfigurationProperties(prefix = "")注解来获取配置文件参数值。在application.properties配置文件添加属性后,可以通过@Value("${property}")注解来获取该属性的值。例如,在一个RestController类,可以使用@Value注解将配置属性注入到类的成员变量,并通过该成员变量获取属性的值。例如: ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("user") public class UserController { @Value("${nikename}") private String nikename; @GetMapping("getUserName") public String getUserName(){ return nikename; } } ``` 在上述代码,通过@Value("${nikename}")注解将配置文件的nikename属性注入到UserController类的成员变量nikename,并在getUserName方法返回该属性的值。这样就可以通过访问"/user/getUserName"接口来获取application.properties配置文件的nikename属性值。 #### 引用[.reference_title] - *1* *3* [SpringBoot自定义配置](https://blog.csdn.net/l_learning/article/details/103026877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SpringBoot获取application配置文件参数三种方式](https://blog.csdn.net/A434534658/article/details/115354268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值