spring cloud+spring boot 電子商務spring boot獲取配置檔案的屬性

gung123發表於2020-01-14

在專案開發中,有時候需要從配置檔案中讀取屬性值,spring-boot對此方面也提供了較好的支援。

spring-boot對此方面也提供了較好的支援。

瞭解springcloud架構可以加求求:三五三六二四七二五九,比如我們的配置檔案是這樣的

server:
  port: 8888
  tomcat:
    uri-encoding: UTF-8
# 配置微服務的地址
url:
  # 訂單微服務的地址
  orderUrl: 
  #微服務地址2
  taskUrl: 
  #微服務地址3
  customerUrl: 
 
  那麼我們如何獲取呢?
第一種方式:直接使用@Value("${name}")註解就可以將配置檔案中的屬性值注入進來。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
/**
 * 描述:微服務地址呼叫
 * @author Administrator
 * @create 2018-10-18 16:11
 */
@RestController
@RequestMapping("/url")
public class ConfigController {
 
    private static final Logger LOGGER = LoggerFactory.getLogger(ConfigController.class);
 
    //在屬性上使用 @Value 註解即可獲取到配置檔案中的配置資訊
    @Value("${url.orderUrl}")
    private String orderUrl;
 
    @RequestMapping("/orderUrl")
    public String testConfig() {
        LOGGER.info("=====獲取的訂單服務地址為:{}", orderUrl);
        return orderUrl;
    }
}
第二種方式:多個配置資訊的情形,列入我們有多個微服務地址,這樣的話我們就還可以簡單一些。
1 引入依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
2 定義一個儲存服務url的類:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
/**
 * 描述:微服務地址
 * @author Administrator
 * @create 2018-10-18 16:28
 */
@Component
@ConfigurationProperties(prefix = "url")
public class ServiceUrl {
    private String orderUrl;
    private String taskUrl;
    private String customerUrl;
    public String getOrderUrl() {
        return orderUrl;
    }
    public void setOrderUrl(String orderUrl) {
        this.orderUrl = orderUrl;
    }
 
    public String getTaskUrl() {
        return taskUrl;
    }
 
    public void setTaskUrl(String taskUrl) {
        this.taskUrl = taskUrl;
    }
 
    public String getCustomerUrl() {
        return customerUrl;
    }
    使用 @ConfigurationProperties 註解並使用 prefix 指定一個字首,那麼該類中的屬性名就是配置中去掉字首後的名字,一一對應即可。即:字首名 + 屬性名就是配置檔案中定義的 key。同時,該類上面需要加上 @Component 註解,把該類作為元件放到 Spring 容器中,讓 Spring 去管理,我們使用的時候直接注入即可。
然後我們直接使用@Resource注入就可以使用了
import com.ruifeng.demo.common.ServiceUrl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
 
/**
 * 描述:微服務地址呼叫
 * @author Administrator
 * @create 2018-10-18 16:11
 */
@RestController
@RequestMapping("/url")
public class ConfigController {
 
    private static final Logger LOGGER = LoggerFactory.getLogger(ConfigController.class);
 
 
    @Resource
    private ServiceUrl microServiceUrl;
 
    @RequestMapping("/config")
    public String testConfigs() {
        LOGGER.info("=====獲取的訂單服務地址為:{}", microServiceUrl.getOrderUrl());
        LOGGER.info("=====獲取的任務服務地址為:{}", microServiceUrl.getTaskUrl());
        LOGGER.info("=====獲取的客戶服務地址為:{}", microServiceUrl.getCustomerUrl());
 
        return "success";
    }
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2673269/,如需轉載,請註明出處,否則將追究法律責任。

相關文章