下面列出了怎么用org.springframework.boot.bind.RelaxedPropertyResolver的API类实例代码及写法,或者点击链接到github查看源代码。
public static void main(String[] args) {
ConfigurableApplicationContext context =
new SpringApplicationBuilder(
RelaxedPropertyResolverBootstrap.class)
.properties("user.city.postCode=0571")
.web(false) // 非 Web 应用
.run(args);
// 获取 Environment,也是 PropertyResolver 对象
PropertyResolver environment = context.getEnvironment();
// 属性名称前缀
String prefix = "user.city.";
// 创建 RelaxedPropertyResolver 实例
RelaxedPropertyResolver propertyResolver = new RelaxedPropertyResolver(environment, prefix);
// 获取松散化配置属性
String postCode = propertyResolver.getProperty("post-code");
System.out.println("postCode = " + postCode);
// 关闭上下文
context.close();
}
private String getValue(String source, String defaultValue) {
if (this.environment == null) {
addWarn("No Spring Environment available to resolve " + source);
return defaultValue;
}
String value = this.environment.getProperty(source);
if (value != null) {
return value;
}
int lastDot = source.lastIndexOf(".");
if (lastDot > 0) {
String prefix = source.substring(0, lastDot + 1);
RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(this.environment, prefix);
return resolver.getProperty(source.substring(lastDot + 1), defaultValue);
}
return defaultValue;
}
@Bean
public DataSource getDynamicDataSource() {
DynamicDataSource routingDataSource = new DynamicDataSource();
List<String> dataSourceKeys = new ArrayList<>();
RelaxedPropertyResolver propertyResolver = new RelaxedPropertyResolver(environment, "datasource.tinyid.");
String names = propertyResolver.getProperty("names");
String dataSourceType = propertyResolver.getProperty("type");
Map<Object, Object> targetDataSources = new HashMap<>(4);
routingDataSource.setTargetDataSources(targetDataSources);
routingDataSource.setDataSourceKeys(dataSourceKeys);
// 多个数据源
for (String name : names.split(SEP)) {
Map<String, Object> dsMap = propertyResolver.getSubProperties(name + ".");
DataSource dataSource = buildDataSource(dataSourceType, dsMap);
buildDataSourceProperties(dataSource, dsMap);
targetDataSources.put(name, dataSource);
dataSourceKeys.add(name);
}
return routingDataSource;
}
protected URI resolveUri(ServiceInstance serviceInstance) {
Map<String, Object> metadata = new HashMap<>();
for (Map.Entry<String, String> entry : serviceInstance.getMetadata().entrySet()) {
metadata.put(entry.getKey(), entry.getValue());
}
UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromUri(serviceInstance.getUri());
RelaxedPropertyResolver propertyResolver = new RelaxedPropertyResolver(new MapPropertyResolver(metadata));
String configPath = propertyResolver.getProperty("configPath");
if (configPath != null) {
uriBuilder.path(configPath);
}
return uriBuilder.build().toUri();
}
public boolean isTemplateAvailable(final String view, final Environment environment, final ClassLoader classLoader,
final ResourceLoader resourceLoader) {
if (ClassUtils.isPresent("org.trimou.Mustache", classLoader)) {
final PropertyResolver resolver =
new RelaxedPropertyResolver(environment, TrimouProperties.PROPERTY_PREFIX + '.');
final String prefix = resolver.getProperty("prefix", SpringResourceTemplateLocator.DEFAULT_PREFIX);
final String suffix = resolver.getProperty("suffix", SpringResourceTemplateLocator.DEFAULT_SUFFIX);
final String resourceLocation = prefix + view + suffix;
return resourceLoader.getResource(resourceLocation).exists();
}
return false;
}
@Bean(name = BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME)
public PropertyResolver dubboScanBasePackagesPropertyResolver(Environment environment) {
return new RelaxedPropertyResolver(environment, DUBBO_SCAN_PREFIX);
}
private PropertyResolver getPatternsResolver(Environment environment) {
if (environment == null) {
return new PropertySourcesPropertyResolver(null);
}
return RelaxedPropertyResolver.ignoringUnresolvableNestedPlaceholders(environment, "logging.");
}
@Override
public void setEnvironment(Environment environment) {
this.liquiBasePropertyResolver = new RelaxedPropertyResolver(environment, "liquiBase.");
}
@Override
public void setEnvironment(Environment environment) {
this.liquiBasePropertyResolver = new RelaxedPropertyResolver(environment, "liquiBase.");
}
@Override
public void setEnvironment(Environment environment) {
this.resolver = new RelaxedPropertyResolver(environment, PREFIX);
}
@Override
public void setEnvironment(Environment environment) {
this.environment = (ConfigurableEnvironment) environment;
this.resolver = new RelaxedPropertyResolver(environment, PREFIX);
}
@Override
public void setEnvironment(Environment environment) {
this.resolver = new RelaxedPropertyResolver(environment, PREFIX);
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.messages.");
}
public void setEnvironment(Environment environment) {
this.environment = environment;
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.datasource.");
}
public void setEnvironment(Environment environment) {
this.environment = environment;
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.datasource.");
}
public void setEnvironment(Environment env) {
this.propertyResolver = new RelaxedPropertyResolver(env, "spring.datasource.");
}
@Override
public void setEnvironment(Environment env) {
this.propertyResolver = new RelaxedPropertyResolver(env, "spring.datasource.");
}
@Override
public void setEnvironment(Environment env) {
this.propertyResolver = new RelaxedPropertyResolver(env, "pic.");
}
public void setEnvironment(Environment env) {
this.propertyResolver = new RelaxedPropertyResolver(env, "spring.datasource.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.messages.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.messages.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.messages.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.messages.");
}
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "mybatis.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.messages.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.messages.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "authentication.oauth.");
}
@Override
public void setEnvironment(Environment env) {
this.env = env;
this.dataSourcePropertyResolver = new RelaxedPropertyResolver(env, "spring.datasource.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, "swagger.");
}
@Override
public void setEnvironment(Environment environment) {
this.propertyResolver = new RelaxedPropertyResolver(environment, ENV_OAUTH);
}