1、簡介 html
參考地址:https://help.aliyun.com/document_detail/59953.html?spm=a2c4g.11186623.6.542.2a337463zwN9kfjava
2、本地搭建阿里雲ACM服務spring
參考地址:https://help.aliyun.com/document_detail/66462.html?spm=a2c4g.11186623.6.563.3fd373f64gdFwxapp
3、SpringBoot集成spring-boot
參考地址:https://help.aliyun.com/document_detail/60369.html?spm=a2c4g.11186623.6.589.106e90adf5TaIC測試
pom文件依賴ui
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-acm</artifactId> <version>1.0.8</version> </dependency>
SpringCloud和SpringBoot依賴版本阿里雲
<spring-cloud.version>Finchley.SR1</spring-cloud.version> <spring-boot.version>2.0.6.RELEASE</spring-boot.version>
默認application.yml配置spa
spring: application: group: com.alibaba.cloud.acm name: test-simple1 alibaba: acm: endpoint: acm.aliyun.com group: test file-extension: yml namespace: accessKey: secretKey:
配置啓動參數.net
java
-server -Xmx512m -Xms512m -Xmn256m -Xss512k
-Dpandora.location=/home/snowball/lib/taobao-hsf.sar-dev-SNAPSHOT.jar -Dcom.alibaba.vipserver.jmenv=jmenv.tbsite.net:8080 -Dvipserver.server.port=8080 -Dvipserver.register.ip=192.168.1.43 -Dons.client.logLevel=INFO -jar core_return.jar --alibaba.acm.endpoint=acm.aliyun.com --alibaba.acm.namespace=653fe759-fa3f-4cac-95f7-66e7fb48d50a --alibaba.acm.accessKey=1d1e1ee2ce794952b685e3a30b593c6a --alibaba.acm.secretKey=DEUDoKxuHC6yAIwfoq1uP6sbDMc= > log/log.file 2>&1 &
4、特殊說明
一、屬性動態配置,生效問題
使用@ConfigurationProperties註解註釋的配置類,動態修改默認會立馬生效
@Data @Configuration @ConfigurationProperties(prefix = "system.config") public class SystemConfig { private String name; private String value; }
使用@Value註解註釋的屬性,動態修改不會生效,須要重啓服務
@RestController @RequestMapping("order") public class OrderController { @Value("${test.config}") private String config; @Autowired SystemConfig systemConfig; @RequestMapping("saveOrder") public String findUserById() { return config; } }
二、若是須要配置修改,不會更新@ConfigurationProperties註解註釋的配置類,增長 alibaba.acm.refresh.enabled=false 配置便可。 alibaba.acm.refresh.enabled 屬性值的修改,只有重啓服務才能生效
alibaba.acm.refresh.enabled=false
5、多環境配置
參考地址:https://help.aliyun.com/document_detail/85477.html?spm=a2c4g.11186623.6.552.6113407aW5Aryl
使用 ACM 的命名空間(Namespace)功能,爲應用在測試、預生產和生產環境下的同一個配置設置不一樣的值
一、配置profile,同一個endpoint地址,端口地址也一致
<profiles> <!-- 本地環境 --> <profile> <id>public</id> <properties> <alibaba.acm.endpoint>acm.aliyun.com</alibaba.acm.endpoint> <server.port>8080</server.port> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <!-- 阿里雲內網環境 (上海) --> <profile> <id>aliyun</id> <properties> <alibaba.acm.endpoint>addr-sh-internal.edas.aliyun.com</alibaba.acm.endpoint> <server.port>8080</server.port> </properties> </profile> </profiles>
二、啓動參數指定namespace,區分不一樣環境
--alibaba.acm.namespace=653fe759-fa3f-4cac-95f7-66e7fb48d50a
6、常見錯誤
錯誤一:java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration.mbeanExporter
緣由:缺乏 spring-boot-starter-actuator 的jar包
錯誤二:java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
緣由:SpringCloud和SpringBoot版本不匹配