org.springframework.boot.context.properties.source.ConfigurationPropertyName Java Examples
The following examples show how to use
org.springframework.boot.context.properties.source.ConfigurationPropertyName.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: BinderBootstrap.java From thinking-in-spring-boot-samples with Apache License 2.0 | 7 votes |
public static void main(String[] args) { ConfigurableApplicationContext context = new SpringApplicationBuilder(BinderBootstrap.class) .web(WebApplicationType.NONE) // 非 Web 应用 .properties("user.city.postCode=0731") .run(args); ConfigurableEnvironment environment = context.getEnvironment(); // 从 Environment 中获取 ConfigurationPropertySource 集合 Iterable<ConfigurationPropertySource> sources = ConfigurationPropertySources.get(environment); // 构造 Binder 对象,并使用 ConfigurationPropertySource 集合作为配置源 Binder binder = new Binder(sources); // 构造 ConfigurationPropertyName(Spring Boot 2.0 API) ConfigurationPropertyName propertyName = ConfigurationPropertyName.of("user.city.post-code"); // 构造 Bindable 对象,包装 postCode Bindable<String> postCodeBindable = Bindable.of(String.class); BindResult<String> result = binder.bind(propertyName, postCodeBindable); String postCode = result.get(); System.out.println("postCode = " + postCode); // 关闭上下文 context.close(); }
Example #2
Source File: GenericPropertiesConfiguration.java From camunda-bpm-platform with Apache License 2.0 | 6 votes |
@Override public void preInit(SpringProcessEngineConfiguration springProcessEngineConfiguration) { GenericProperties genericProperties = camundaBpmProperties.getGenericProperties(); final Map<String, Object> properties = genericProperties.getProperties(); if (!CollectionUtils.isEmpty(properties)) { ConfigurationPropertySource source = new MapConfigurationPropertySource(properties); Binder binder = new Binder(source); try { if (genericProperties.isIgnoreUnknownFields()) { binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(springProcessEngineConfiguration)); } else { binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(springProcessEngineConfiguration), new NoUnboundElementsBindHandler(BindHandler.DEFAULT)); } } catch (Exception e) { throw LOG.exceptionDuringBinding(e.getMessage()); } logger.debug("properties bound to configuration: {}", genericProperties); } }
Example #3
Source File: BindingHandlerAdvise.java From spring-cloud-stream with Apache License 2.0 | 6 votes |
private ConfigurationPropertyName getDefaultName(ConfigurationPropertyName name) { for (Map.Entry<ConfigurationPropertyName, ConfigurationPropertyName> mapping : this.mappings .entrySet()) { ConfigurationPropertyName from = mapping.getKey(); ConfigurationPropertyName to = mapping.getValue(); if ((from.isAncestorOf(name) && name.getNumberOfElements() > from.getNumberOfElements())) { ConfigurationPropertyName defaultName = to; for (int i = from.getNumberOfElements() + 1; i < name .getNumberOfElements(); i++) { defaultName = defaultName.append(name.getElement(i, Form.UNIFORM)); } return defaultName; } } return null; }
Example #4
Source File: BindingHandlerAdvise.java From spring-cloud-stream with Apache License 2.0 | 6 votes |
@Override public BindHandler apply(BindHandler bindHandler) { BindHandler handler = new AbstractBindHandler(bindHandler) { @Override public <T> Bindable<T> onStart(ConfigurationPropertyName name, Bindable<T> target, BindContext context) { ConfigurationPropertyName defaultName = getDefaultName(name); if (defaultName != null) { BindResult<T> result = context.getBinder().bind(defaultName, target); if (result.isBound()) { return target.withExistingValue(result.get()); } } return bindHandler.onStart(name, target, context); } }; return handler; }
Example #5
Source File: ConfigurationPropertyNameAdaptBootstrap.java From thinking-in-spring-boot-samples with Apache License 2.0 | 6 votes |
public static void main(String[] args) throws Exception { // 查找 adapt(CharSequence, char) 静态方法 Method method = ReflectionUtils.findMethod(ConfigurationPropertyName.class, "adapt", CharSequence.class, char.class); // 设置非 public 可访问 method.setAccessible(true); // 执行 adapt 静态方法 ConfigurationPropertyName configurationPropertyName = (ConfigurationPropertyName) method.invoke(null, "user.HOMEP-AGE", '.'); // 获取 "." 分割后的元素数量 int numberOfElements = configurationPropertyName.getNumberOfElements(); for (int i = 0; i < numberOfElements; i++) { // 原始格式 String originalElement = configurationPropertyName.getElement(i, ConfigurationPropertyName.Form.ORIGINAL); // 统一格式 String uniformElement = configurationPropertyName.getElement(i, ConfigurationPropertyName.Form.UNIFORM); // 输出 System.out.printf("配置属性名['%s']的元素[%d] 原始格式 : '%s' , 统一格式 : '%s' \n", configurationPropertyName, i, originalElement, uniformElement); } }
Example #6
Source File: ConfigurationPropertyNameHierarchyBootstrap.java From thinking-in-spring-boot-samples with Apache License 2.0 | 6 votes |
public static void main(String[] args) { // 配置属性名抽象:ConfigurationPropertyName ConfigurationPropertyName configurationPropertyName = ConfigurationPropertyName.of("a.b.c"); // 获取 "." 分割后的元素数量 int numberOfElements = configurationPropertyName.getNumberOfElements(); for (int i = 0; i < numberOfElements; i++) { // 获取劈断大小 int size = i + 1; ConfigurationPropertyName chopped = configurationPropertyName.chop(size); // 输出 System.out.printf("劈断[大小 : %d]的配置属性名['%s'] 是否为配置属性名['%s'] 的父属性名 : %b , 祖属性名 : %b \n", size, chopped, configurationPropertyName, chopped.isParentOf(configurationPropertyName), chopped.isAncestorOf(configurationPropertyName) ); } }
Example #7
Source File: ConfigurationPropertySourcesBootstrap.java From thinking-in-spring-boot-samples with Apache License 2.0 | 6 votes |
public static void main(String[] args) { ConfigurableApplicationContext context = new SpringApplicationBuilder( ConfigurationPropertySourcesBootstrap.class) .properties("user.city.postCode=0571") .web(WebApplicationType.NONE) // 非 Web 应用 .run(args); ConfigurableEnvironment environment = context.getEnvironment(); // 从 Environment 中获取 ConfigurationPropertySource 集合 Iterable<ConfigurationPropertySource> configurationPropertySources = ConfigurationPropertySources.get(environment); // 构造 ConfigurationPropertyName(Spring Boot 2.0 API) ConfigurationPropertyName propertyName = ConfigurationPropertyName.of("user.city.post-code"); // 迭代 ConfigurationPropertySource configurationPropertySources.forEach(configurationPropertySource -> { // 通过 ConfigurationPropertyName 获取 ConfigurationProperty ConfigurationProperty configurationProperty = configurationPropertySource.getConfigurationProperty(propertyName); if (configurationProperty != null) { String postCode = (String) configurationProperty.getValue(); System.out.println("postCode = " + postCode + " , from : " + configurationProperty.getOrigin()); } }); // 关闭上下文 context.close(); }
Example #8
Source File: GenericPropertiesConfiguration.java From camunda-bpm-spring-boot-starter with Apache License 2.0 | 6 votes |
@Override public void preInit(SpringProcessEngineConfiguration springProcessEngineConfiguration) { GenericProperties genericProperties = camundaBpmProperties.getGenericProperties(); final Map<String, Object> properties = genericProperties.getProperties(); if (!CollectionUtils.isEmpty(properties)) { ConfigurationPropertySource source = new MapConfigurationPropertySource(properties); Binder binder = new Binder(source); try { if (genericProperties.isIgnoreUnknownFields()) { binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(springProcessEngineConfiguration)); } else { binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(springProcessEngineConfiguration), new NoUnboundElementsBindHandler(BindHandler.DEFAULT)); } } catch (Exception e) { throw LOG.exceptionDuringBinding(e.getMessage()); } logger.debug("properties bound to configuration: {}", genericProperties); } }
Example #9
Source File: EncodingDecodingBindAdviceHandler.java From spring-cloud-stream-binder-kafka with Apache License 2.0 | 6 votes |
@Override public BindHandler apply(BindHandler bindHandler) { BindHandler handler = new AbstractBindHandler(bindHandler) { @Override public <T> Bindable<T> onStart(ConfigurationPropertyName name, Bindable<T> target, BindContext context) { final String configName = name.toString(); if (configName.contains("use") && configName.contains("native") && (configName.contains("encoding") || configName.contains("decoding"))) { BindResult<T> result = context.getBinder().bind(name, target); if (result.isBound()) { if (configName.contains("encoding")) { EncodingDecodingBindAdviceHandler.this.encodingSettingProvided = true; } else { EncodingDecodingBindAdviceHandler.this.decodingSettingProvided = true; } return target.withExistingValue(result.get()); } } return bindHandler.onStart(name, target, context); } }; return handler; }
Example #10
Source File: XADataSourceBuilder.java From teiid-spring-boot with Apache License 2.0 | 5 votes |
private void bindXaProperties(Bindable<XADataSource> target) { ConfigurationPropertySource source = new MapConfigurationPropertySource( this.properties); ConfigurationPropertyNameAliases aliases = new ConfigurationPropertyNameAliases(); aliases.addAliases("url", "jdbc-url"); aliases.addAliases("username", "user"); aliases.addAliases("portNumber", "port"); aliases.addAliases("serverName", "server"); aliases.addAliases("databaseName", "database"); Binder binder = new Binder(source.withAliases(aliases)); binder.bind(ConfigurationPropertyName.EMPTY, target); }
Example #11
Source File: DataSourceSpiBuilder.java From ByteJTA with GNU Lesser General Public License v3.0 | 5 votes |
private void bind(XADataSource result) { ConfigurationPropertySource source = new MapConfigurationPropertySource(this.properties); ConfigurationPropertyNameAliases aliases = new ConfigurationPropertyNameAliases(); aliases.addAliases("url", "jdbc-url"); aliases.addAliases("username", "user"); Binder binder = new Binder(source.withAliases(aliases)); binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(result)); }
Example #12
Source File: BindingServiceConfiguration.java From spring-cloud-stream with Apache License 2.0 | 5 votes |
@Bean public BindingHandlerAdvise BindingHandlerAdvise( @Nullable MappingsProvider[] providers) { Map<ConfigurationPropertyName, ConfigurationPropertyName> additionalMappings = new HashMap<>(); if (!ObjectUtils.isEmpty(providers)) { for (int i = 0; i < providers.length; i++) { MappingsProvider mappingsProvider = providers[i]; additionalMappings.putAll(mappingsProvider.getDefaultMappings()); } } return new BindingHandlerAdvise(additionalMappings); }
Example #13
Source File: BindingHandlerAdvise.java From spring-cloud-stream with Apache License 2.0 | 5 votes |
BindingHandlerAdvise( Map<ConfigurationPropertyName, ConfigurationPropertyName> additionalMappings) { this.mappings = new LinkedHashMap<>(); this.mappings.put(ConfigurationPropertyName.of("spring.cloud.stream.bindings"), ConfigurationPropertyName.of("spring.cloud.stream.default")); if (!CollectionUtils.isEmpty(additionalMappings)) { this.mappings.putAll(additionalMappings); } }
Example #14
Source File: ExtendedBindingHandlerMappingsProviderConfiguration.java From spring-cloud-stream-binder-rabbit with Apache License 2.0 | 5 votes |
@Bean public MappingsProvider rabbitExtendedPropertiesDefaultMappingsProvider() { return () -> { Map<ConfigurationPropertyName, ConfigurationPropertyName> mappings = new HashMap<>(); mappings.put( ConfigurationPropertyName.of("spring.cloud.stream.rabbit.bindings"), ConfigurationPropertyName.of("spring.cloud.stream.rabbit.default")); return mappings; }; }
Example #15
Source File: ExtendedBindingHandlerMappingsProviderConfiguration.java From spring-cloud-stream-binder-kafka with Apache License 2.0 | 5 votes |
@Bean public MappingsProvider kafkaExtendedPropertiesDefaultMappingsProvider() { return () -> { Map<ConfigurationPropertyName, ConfigurationPropertyName> mappings = new HashMap<>(); mappings.put( ConfigurationPropertyName.of("spring.cloud.stream.kafka.bindings"), ConfigurationPropertyName.of("spring.cloud.stream.kafka.default")); mappings.put( ConfigurationPropertyName.of("spring.cloud.stream.kafka.streams"), ConfigurationPropertyName .of("spring.cloud.stream.kafka.streams.default")); return mappings; }; }
Example #16
Source File: MapConfigurationPropertySourceBootstrap.java From thinking-in-spring-boot-samples with Apache License 2.0 | 5 votes |
public static void main(String[] args) { MapConfigurationPropertySource propertySource = new MapConfigurationPropertySource(); propertySource.put("userName", "Mercy"); propertySource.put("user-id", 1); propertySource.put("user_id", 1); propertySource.stream().map(name -> name.getLastElement(ConfigurationPropertyName.Form.UNIFORM)) .forEach(System.out::println); }
Example #17
Source File: ConfigurationPropertyNameEqualityBootstrap.java From thinking-in-spring-boot-samples with Apache License 2.0 | 5 votes |
public static void main(String[] args) { // ConfigurationPropertyName one = ConfigurationPropertyName.of("user.home-page"); // ConfigurationPropertyName aonther = ConfigurationPropertyName.of("user.homepage"); // System.out.printf("配置属性名['%s'] 与 配置属性名['%s'] 相等 : %b", one, aonther, one.equals(aonther)); // 错误配置属性名,仅允许小写字母 "a-z"、"0-9" 以及 "-"(横划线) ConfigurationPropertyName.of("user.HOMEP-AGE"); }
Example #18
Source File: ConfigurationPropertyNameFormBootstrap.java From thinking-in-spring-boot-samples with Apache License 2.0 | 5 votes |
private static void displayElementForm(String propertyName) { // 配置属性名抽象:ConfigurationPropertyName ConfigurationPropertyName configurationPropertyName = ConfigurationPropertyName.of(propertyName); // 获取 "." 分割后的元素数量 int numberOfElements = configurationPropertyName.getNumberOfElements(); for (int i = 0; i < numberOfElements; i++) { // 原始格式 String originalElement = configurationPropertyName.getElement(i, ConfigurationPropertyName.Form.ORIGINAL); // 统一格式 String uniformElement = configurationPropertyName.getElement(i, ConfigurationPropertyName.Form.UNIFORM); // 输出 System.out.printf("配置属性名['%s']的元素[%d] 原始格式 : '%s' , 统一格式 : '%s' \n", configurationPropertyName, i, originalElement, uniformElement); } }
Example #19
Source File: SpringConfigurationPropertySource.java From synopsys-detect with Apache License 2.0 | 5 votes |
@Override //Spring resolves configuration properties using a configurable property resolver (resolves --prop=${VAR} replaces VAR from an environment variable of the same name.) //The value provided from the configurable property itself or the property source is not resolved, so we have to get the final value from a resolver. //Theoretically, this resolver should be bound to the property source, but this current method at least gets the final resolved value. - jp public String getValue(final String key) { return toConfigurationProperty(key) .map(ConfigurationProperty::getName) .map(ConfigurationPropertyName::toString) .map(configurablePropertyResolver::getProperty) .map(Object::toString) .orElse(null); }
Example #20
Source File: SpringConfigurationPropertySource.java From synopsys-detect with Apache License 2.0 | 5 votes |
@NotNull private Optional<ConfigurationPropertyName> toConfigurationName(String key) { try { return Optional.of(ConfigurationPropertyName.of(key)); } catch (InvalidConfigurationPropertyNameException e) { return Optional.empty(); } }
Example #21
Source File: PubSubBinderConfiguration.java From spring-cloud-gcp with Apache License 2.0 | 4 votes |
@Bean public MappingsProvider pubSubExtendedPropertiesDefaultMappingsProvider() { return () -> Collections.singletonMap( ConfigurationPropertyName.of("spring.cloud.stream.gcp.pubsub.bindings"), ConfigurationPropertyName.of("spring.cloud.stream.gcp.pubsub.default")); }
Example #22
Source File: DataSourceFactory.java From Milkomeda with MIT License | 4 votes |
@SuppressWarnings("rawtypes") private void bind(DataSource result, Map properties) { ConfigurationPropertySource source = new MapConfigurationPropertySource(properties); Binder binder = new Binder(source.withAliases(ALIASES)); binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(result)); }
Example #23
Source File: ThrowErrorBindHandler.java From mango-spring-boot-starter with Apache License 2.0 | 4 votes |
@Override public Object onFailure(ConfigurationPropertyName name, Bindable<?> target, BindContext context, Exception error) throws Exception { throw new MangoAutoConfigException(error); }
Example #24
Source File: SpringConfigurationPropertySource.java From synopsys-detect with Apache License 2.0 | 4 votes |
@Override public Set<String> getKeys() { return Bds.of(propertySource).map(ConfigurationPropertyName::toString).toSet(); }
Example #25
Source File: DataSourceCciBuilder.java From ByteJTA with GNU Lesser General Public License v3.0 | 4 votes |
private void bind(DataSource dataSource) { ConfigurationPropertySource source = new MapConfigurationPropertySource(this.properties); ConfigurationPropertyNameAliases aliases = new ConfigurationPropertyNameAliases(); Binder binder = new Binder(source.withAliases(aliases)); binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(dataSource)); }
Example #26
Source File: SpringConfigurationPropertySource.java From synopsys-detect with Apache License 2.0 | 4 votes |
@Override public Boolean hasKey(final String key) { Optional<ConfigurationPropertyName> configurationPropertyName = toConfigurationName(key); return configurationPropertyName.filter(propertyName -> propertySource.getConfigurationProperty(propertyName) != null).isPresent(); }
Example #27
Source File: BindingHandlerAdvise.java From spring-cloud-stream with Apache License 2.0 | votes |
Map<ConfigurationPropertyName, ConfigurationPropertyName> getDefaultMappings();