| 1 | |
import com.ctrip.framework.apollo.Config; |
| 2 | |
import com.ctrip.framework.apollo.ConfigChangeListener; |
| 3 | |
import com.ctrip.framework.apollo.ConfigService; |
| 4 | |
import com.ctrip.framework.apollo.model.ConfigChange; |
| 5 | |
import com.ctrip.framework.apollo.model.ConfigChangeEvent; |
| 6 | |
|
| 7 | |
import org.slf4j.Logger; |
| 8 | |
import org.slf4j.LoggerFactory; |
| 9 | |
|
| 10 | |
import java.io.BufferedReader; |
| 11 | |
import java.io.IOException; |
| 12 | |
import java.io.InputStreamReader; |
| 13 | |
|
| 14 | |
|
| 15 | |
|
| 16 | |
|
| 17 | 0 | public class ApolloConfigDemo { |
| 18 | 0 | private static final Logger logger = LoggerFactory.getLogger(ApolloConfigDemo.class); |
| 19 | |
private Config config; |
| 20 | |
|
| 21 | 0 | public ApolloConfigDemo() { |
| 22 | 0 | config = ConfigService.getAppConfig(); |
| 23 | 0 | config.addChangeListener(new ConfigChangeListener() { |
| 24 | |
@Override |
| 25 | |
public void onChange(ConfigChangeEvent changeEvent) { |
| 26 | 0 | logger.info("Changes for namespace {}", changeEvent.getNamespace()); |
| 27 | 0 | for (String key : changeEvent.changedKeys()) { |
| 28 | 0 | ConfigChange change = changeEvent.getChange(key); |
| 29 | 0 | logger.info("Change - key: {}, oldValue: {}, newValue: {}, changeType: {}", |
| 30 | 0 | change.getPropertyName(), change.getOldValue(), change.getNewValue(), |
| 31 | 0 | change.getChangeType()); |
| 32 | 0 | } |
| 33 | 0 | } |
| 34 | |
}); |
| 35 | 0 | } |
| 36 | |
|
| 37 | |
private String getConfig(String key) { |
| 38 | 0 | String result = config.getProperty(key, "undefined"); |
| 39 | 0 | logger.info(String.format("Loading key: %s with value: %s", key, result)); |
| 40 | 0 | return result; |
| 41 | |
} |
| 42 | |
|
| 43 | |
public static void main(String[] args) throws IOException { |
| 44 | 0 | ApolloConfigDemo apolloConfigDemo = new ApolloConfigDemo(); |
| 45 | 0 | System.out.println( |
| 46 | |
"Apollo Config Demo. Please input key to get the value."); |
| 47 | |
while (true) { |
| 48 | 0 | System.out.print("> "); |
| 49 | 0 | String input = new BufferedReader(new InputStreamReader(System.in)).readLine(); |
| 50 | 0 | if (input == null || input.length() == 0) { |
| 51 | 0 | continue; |
| 52 | |
} |
| 53 | 0 | input = input.trim(); |
| 54 | 0 | if (input.equalsIgnoreCase("quit")) { |
| 55 | 0 | System.exit(0); |
| 56 | |
} |
| 57 | 0 | apolloConfigDemo.getConfig(input); |
| 58 | 0 | } |
| 59 | |
} |
| 60 | |
} |