1. 程式人生 > >springboot 配置資源統一管理

springboot 配置資源統一管理

在一個springboot的專案中建立一個載入資源的類
LoadPropertiesConfig


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import org.slf4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
import
org.springframework.core.Ordered; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.MutablePropertySources; import org.springframework.core.env.PropertiesPropertySource; public class LoadPropertiesConfig implements EnvironmentPostProcessor, Ordered { private
static final Logger LOG = org.slf4j.LoggerFactory.getLogger(LoadPropertiesConfig.class); @Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { //此處可以http方式 到配置伺服器拉取一堆公共配置+本專案個性配置的json串,拼到Properties裡 Properties properties = new
Properties(); try { properties.load( new FileInputStream(new File("D:\\service\\demo-parents\\springboot-app\\application.properties"))); } catch (FileNotFoundException e) { LOG.error("error message", e); } catch (IOException e) { LOG.error("error message", e); } MutablePropertySources propertySources = environment.getPropertySources(); //addLast 結合下面的 getOrder() 保證順序 讀者也可以試試其他姿勢的載入順序 propertySources.addLast(new PropertiesPropertySource("thirdEnv", properties)); } @Override public int getOrder() { // +1 保證application.propertie裡的內容能覆蓋掉本配置檔案中預設的 // 如果不想被覆蓋 可以去掉 +1 或者 -1 試試 return Integer.MIN_VALUE; } }

這樣就實現了用遠端資源覆蓋本地資源的情況
測試程式碼


@SpringBootApplication
@ComponentScan
public class Application {



    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 類PropertiesCheckController.java的實現描述:驗證自定義配置檔案
 * 
 * @author xupeng 2017年3月16日 下午4:04:24
 */
@RestController
public class PropertiesCheckController {

    @Value("${name}")
    private String name;

    @RequestMapping("/showName")
    public String showName() {
        return name;
    }
}

本地配置檔案

name=ceshi

遠端配置檔案

name=name

用以上程式碼測試,當沒有載入到遠端資源的時候訪問showName
返回的是ceshi當資源被覆蓋之後就會顯示name

相關推薦

springboot 配置資源統一管理

在一個springboot的專案中建立一個載入資源的類 LoadPropertiesConfig import java.io.File; import java.io.FileInputSt

SpringBoot-整合webjars靜態資源統一管理

一、前言 這個東西呢,我第一次接觸的時候就覺得很好玩,他能進行js、css檔案庫進行maven依賴管理,能像一般的jar包一樣進行管理,對於js、css版本的更新一類的會比較好 二、實踐 1. 我們首先要確定要什麼js或css庫,確定後進入webjars官網找到相應的依賴語句

springboot配置shiro許可權管理,網搜搜採集網站許可權控制程式碼

import outshine.shiro.authc.AccountSubjectFactory; import outshine.shiro.filter.AuthenticatedFilter; import outshine.shiro.realm.AccountRealm; import or

SpringCloud配置檔案之將變數寫入配置檔案統一管理

一些可能要修改的屬性值,我們可以寫入配置檔案,通過讀取配置檔案的方式,動態的注入,需要修改的時候,我們只需要修改配置檔案就可以了,避免了對程式碼的修改,方便維護 像這樣: //配置檔案中這麼寫 sms-verify: api-url: XXXXXXXXXXXXXXXX

企業分布式微服務雲SpringCloud SpringBoot mybatis (十六)Spring Boot中使用LDAP來統一管理用戶信息

數據庫表 repo on() intellij attr ads get 可選 mail LDAP簡介 LDAP(輕量級目錄訪問協議,Lightweight Directory Access Protocol)是實現提供被稱為目錄服務的信息服務。目錄服務是一種特殊的數據庫系

Android Studio配置統一管理依賴版本號引用

ext net image libs 文章 studio depend run o-c 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 前言 本Demo采用的是其中一個方案,其他方案請閱讀參考資料《Android Studio中統一管理版本號引用配置》

Springboot 靜態資源路徑配置的兩種方法

參考學習: http://www.zslin.com/web/article/detail/23 http://blog.csdn.net/catoop/article/details/50501706 訴求:Spring Boot 預設為我們提供了靜態資源處理,而有時我們需要自定義

使用Apollo管理Springboot配置檔案的相關配置

1,引入Maven依賴: <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId>

.NET Core微服務之基於Steeltoe使用Spring Cloud Config統一管理配置

一、關於Spring Cloud Config   在分散式系統中,每一個功能模組都能拆分成一個獨立的服務,一次請求的完成,可能會呼叫很多個服務協調來完成,為了方便服務配置檔案統一管理,更易於部署、維護,所以就需要分散式配置中心元件了,在Spring Cloud中,就有這麼一個分散式配置中心元件 —

springBoot靜態資源配置

#server port server.port=80 #spring security admin=admin password=123456 #MySQL config &zeroD

Spring Cloud Config統一管理服務配置

一、為什麼要統一管理微服務配置 對於傳統的單體應用而言,常使用配置檔案來管理所有配置,比如SpringBoot的application.yml檔案,但是在微服務架構中全部手動修改的話很麻煩而且不易維護。 微服務的配置管理一般有以下需求: 1.集中配置管理,一個微服務架構中可能有成百上千個微服

SpringBoot 靜態資源配置

springboot    靜態資源訪問的順序  (1)在src/main/resources/static資料夾  (2)在src/main/resources/resources資料夾  (3)在s

Lind.DDD.ConfigConstants統一管理系統配置

回到目錄 Lind.DDD.ConfigConstants屬於新新增的元件,用來幫助我們安全的進行配置訊息的管理,我們在開發專案時,有個感覺,你的config配置項會越來越多,越來越難以閱讀,隨著你引用的元件增多,新增更多的配置項也難以避免,而我自己的Lind.DDD框架也是如此,今天加個日誌,明天加個訊息

使用gradle的自定義Property實現Android專案的配置和依賴統一管理

gradle支援自定義property,在GoogleSamples中官方用了Ext(ra) Properties方式來定義了Android的配置檔案和統一的依賴管理,這種方式也稱動態屬性,我們必須使用關鍵字ext(對應ExtraPropertiesExtens

SpringBoot開發詳解(六)-- 異常統一管理以及AOP的使用

AOP在SpringBoot中的使用 使用切面管理異常的原因: 今天的內容乾貨滿滿哦~並且是我自己在平時工作中的一些問題與解決途徑,對實際開發的作用很大,好,閒言少敘,讓我們開始吧~~ 我們先看一張錯誤資訊在APP中的展示圖: 是不是體驗很差

springboot預設的日誌管理工具logback的配置

1.首先建立xxx-spring.xml(必須是以spring結尾)2.logback-spring.xml的內容編輯<?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn">

Android studio gradle 版本統一管理配置

前言 隨著專案的不斷迭代更新,專案變的也越來越大,為了減少編譯時間,開發效率,大多采用模組化,元件化開發,moudle 的個數也會隨著增加,那麼一些依賴或sdk版本升級的時候,每個 moudle 的

springboot配置mybatis和事務的管理

spring boot配置mybatis和事務管理 一、spring boot與mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依賴如下: <!-- Spring Boot 啟動父依賴 --> <parent>

四 建立SpringCloud_config服務專案,統一管理配置檔案

1,建立SpringCloud_config專案 2,匯入依賴pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:

springboot maven資源路徑配置 resource路徑配置, 解決mybatis的xml放在java路徑而沒有放在resource路徑下報錯的問題

我是這樣配置的 <build> <!--resources配置解決mybatis 的mapperXml配置在java路徑不被掃描的問題 --> <resources>