springboot+springcloud config
阿新 • • 發佈:2017-12-04
ack sea stat arch 頁面 doc tar -c string
參考:sorry,全找不到了,當時沒記錄,最後後知後覺覺得應該記錄,所以後面的都有在asfood父項目中的doc文件夾下記錄,望見諒。
1. springconfig server
1.1. pom.xml
<!-- 父項目以來 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
1.2 啟動類
@EnableConfigServer @SpringBootApplication public class TomatoApplication { public static void main(String[] args) { SpringApplication.run(TomatoApplication.class, args); } }
1.3 配置
server: port: 55590 spring: application: name: asfood-tomato profiles: active: dev cloud: config: server: git: # 配置git倉庫的地址 #訪問地址: http://localhost:55590/{filename}/{env}/{branch} uri: https://github.com/molyjao/mlims # git倉庫地址下的相對地址,可以配置多個,用,分割。 #search-paths: asfoodconfig # git倉庫的賬號 #username: #jiu_shaan@163.com # git倉庫的密碼 #password: #配置之後訪問git配置需要輸入用戶名密碼 security: user: name: tomato password: tomato
啟動工程,如果可以使用 http://localhost:55590/{文件名不帶後面環境}/{環境}/{git分支}訪問 ,並可以展示裏面內容即可。
2. springcloud client
2.1 pom.xml
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
2.2 啟動類
@SpringBootApplication public class KetchupApplication { public static void main(String[] args) { SpringApplication.run(KetchupApplication.class, args); } }
控制層:
@RestController @RefreshScope //刷新配置使用的註解, public class KetchupController { //qqname為配置文件的內容的一個key,‘:‘後面是默認值 @Value("${qqname:defaultqqname}") private String str; @RequestMapping("/ketchup") String hello() { return "Hello " + str + "!"; } }
2.3 配置文件:兩部分bootstrap.yml和application.yml文件,由於bootstrap.yml加載最早,所以需要加載服務端配置文件內的內容需要優先加載。
bootstrap.yml
spring: cloud: config: name: asfood profile: dev label: master uri: http://localhost:55590/ #discovery: enabled: true # 默認false,設為true表示使用註冊中心中的configserver配置而不自己配置configserver的uri serviceId: asfood-tomato # 指定config server在服務發現中的serviceId,默認為:configserver #由於服務端配置了訪問需要用戶名和密碼,所以此處也需要配置 username: tomato password: tomato
application.yml
server: port: 55591 spring: application: name: asfood-ketchup profiles: active: dev #日誌 logging: file: ./logs/ketchup.log management: security: enabled: false #actuator是否需要安全保證 默認為true 不加會報錯
現在啟動服務端,後啟動客戶端,可以訪問就正常了,
如果客戶端啟動報錯:找不到所配置的讀取的文件中的key, xxx placeholder ${xxx} 這個錯誤就是沒有找到配置文件(保證不會手誤,key寫的不一樣),如果此時你的服務端的頁面訪問配置文件,不能訪問到配置文件中的內容,這個需要再次百度,如果是服務端可以訪問到配置文件中的內容,這個時候需要檢查客戶端的服務端地址等的配置,檢查服務端和客戶端啟動類的註釋,一個是server一個是client還有問題百度吧,我也初學。。。還有個好網站,stackoverflow。
自動刷新配置文件訪問: 客戶端ip:port/refresh
有需要可以參考這裏(在asfood-ketchup-config-client和asfood-tomato-config-server中): https://github.com/molyjao/mlims.git
springboot+springcloud config