feat: 引入Apollo配置中心

pull/7/head
wangping 5 years ago
parent e155866ad1
commit 2d3144a9bc
  1. 10
      sop-openapi/pom.xml
  2. 41
      sop-openapi/src/main/java/com/gitee/sop/openapi/config/ApolloApplicationConfig.java
  3. 31
      sop-openapi/src/main/java/com/gitee/sop/openapi/controller/AuthCodeController.java
  4. 2
      sop-openapi/src/main/resources/META-INF/app.properties
  5. 6
      sop-openapi/src/main/resources/application-standalone.yml
  6. 11
      sop-openapi/src/main/resources/application.properties

@ -13,6 +13,10 @@
<artifactId>sop-openapi</artifactId>
<name>sop-openapi</name>
<properties>
<apollo.version>1.1.0</apollo.version>
</properties>
<dependencies>
<dependency>
<groupId>com.gitee.sop</groupId>
@ -92,6 +96,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>${apollo.version}</version>
</dependency>
</dependencies>
<build>

@ -0,0 +1,41 @@
package com.gitee.sop.openapi.config;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import com.ctrip.framework.apollo.model.ConfigChange;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/***
*
* @author wangping created on 2020/11/5 16:06
*/
@Slf4j
@Component
public class ApolloApplicationConfig implements BeanPostProcessor {
@PostConstruct
public void init() {
loadApplication();
}
private void loadApplication() {
Config config = ConfigService.getAppConfig();
config.addChangeListener(this::getChangedEvent);
}
private void getChangedEvent(ConfigChangeEvent changeEvent) {
for (String key : changeEvent.changedKeys()) {
ConfigChange change = changeEvent.getChange(key);
log.info("Found change - key: {}, oldValue: {}, newValue: {}, changeType:{}",
change.getPropertyName(), change.getOldValue(),
change.getNewValue(), change.getChangeType());
}
}
}

@ -1,14 +1,18 @@
package com.gitee.sop.openapi.controller;
import com.gitee.sop.openapi.config.RedisOperator;
import com.gitee.sop.openapi.po.AuthCodePo;
import com.gitee.sop.openapi.vo.AuthCodeVo;
import com.gitee.sop.openapi.service.AuthCodeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@RestController
@ -17,9 +21,23 @@ public class AuthCodeController {
private final AuthCodeService authCodeService;
private final RedisOperator redisOperator;
public AuthCodeController(final AuthCodeService authCodeService) {
@Value("${test.redis}")
private String testRedis;
public void setTestRedis(String testRedis) {
this.testRedis = testRedis;
}
public String getTestRedis() {
return testRedis;
}
public AuthCodeController(final AuthCodeService authCodeService, final RedisOperator redisOperator) {
this.authCodeService = authCodeService;
this.redisOperator = redisOperator;
}
@ -36,4 +54,15 @@ public class AuthCodeController {
authCodeService.cancelToken(userId);
}
@ApiOperation(value = "测试接口")
@GetMapping("/test")
public Map<String, Object> test() {
Map<String, Object> map = new HashMap<>();
map.put("code", 0);
map.put("msg", "success");
redisOperator.set("test11", testRedis);
return map;
}
}

@ -0,0 +1,2 @@
app.id=open-apis
jdkVersion=1.8

@ -1,7 +1,7 @@
spring:
redis:
host: localhost
port: 6379
host: 52.81.162.154
port: 8095
jedis:
pool:
max-active: 10
@ -10,4 +10,4 @@ spring:
min-idle: 1
database: 0
timeout: 60000
password:
password: zixun@2020!

@ -25,4 +25,13 @@ spring.datasource.hikari.connection-test-query=select 1
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.hibernate.globally_quoted_identifiers=true
spring.jpa.properties.hibernate.globally_quoted_identifiers=true
spring.jpa.show-sql=false
spring.jpa.show-sql=false
# Apollo
app.id=open-apis
apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=application
apollo.bootstrap.eagerLoad.enable=true
test.redis=wangping
Loading…
Cancel
Save