springcloud配置管理中心可以讀取其他服務器或者svn或者git上面的配置文件,
爲什麼要用配置管理中心?
1:實現配置集中管理
2:出於安全考慮,我們一個大項目很難說全部都是由一批人完成的,難免會有人員更換,作爲程序員的話走習慣將代碼帶走,因爲代碼也是我們程序員的財富,但是這樣會造成安全隱患,如果統一讀取一個地址的配置文件,開發人員只知道業務代碼那安全率就高得多
好了,廢話說了這麼多,接下來就在配置一個
還是用之前的代碼(文字結尾有源碼地址)
首先,我們還是先創建一個module,取名爲config-service,在創建一個取名config-1 ,
項目結構如下
當然,其實配置中心用不到之前的項目,配置中心是不需要註冊的,這裏只是爲了把代碼整合到一起
首先,我們修改config-service項目的pom文件,添加如下依賴,
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
在啓動文件加入@EnableConfigServer,這個註解告訴spring這是我們的配置項目
代碼如下
package org.configservice.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class ConfigServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServiceApplication.class, args);
}
}
修改配置文件,如圖所示
在添加一個配置文件,取名yly-c1.yml,這裏個名字無所謂,我們在裏面添加一個配置,如圖所示
我們在添加一個配置文件,取名yly-c2.yml,同樣添加一個配置,如圖
然後,我們在config-1項目添加上springcloud配置客戶機的依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
然後我們修改一下啓動文件,加入2個註解
@RefreshScope:這個註解告訴spring,我們的資源需要刷新 @RestController:這個註解是Controller
我們在添加一個接口,代碼如下
package org.config1.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RefreshScope
@RestController
public class Config1Application {
public static void main(String[] args) {
SpringApplication.run(Config1Application.class, args);
}
@Value("${mykey}")
private String mykey;
@RequestMapping(value = "/getmykey" ,method = RequestMethod.GET)
public String getmykey() {
return "mykey="+mykey ;
}
}
我們在加入一個配置文件,取名bootstrap.yml(這裏必須叫這個名字,這是spring的啓動配置文件)配置如下
uri:配置文件地址
我們把項目依次啓動,config-service===config-1
我們測試一下
我們再把config-1項目停止了,然後修改一下配置文件
我們把配置文件從c1切換到c2,在測試一下
這樣的話我們就可以很輕鬆的將配置文件和項目分割開來
配套源碼:https://gitee.com/ww2510095/spring_cloud_learning