mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-07-05 00:56:58 +08:00
Polish
Closes gh-11418
This commit is contained in:
parent
644359920b
commit
3c5ccb1166
@ -203,7 +203,7 @@ can also watch files, automatically recompiling and restarting when they change.
|
||||
|
||||
=== spring-boot-actuator
|
||||
Spring Boot Actuator provides additional auto-configuration to decorate your application
|
||||
with features that make it instantly deployable and supportable in production. For
|
||||
with features that make it instantly deployable and supportable in production. For
|
||||
instance, if you are writing a JSON web service then it will provide a server, security,
|
||||
logging, externalized configuration, management endpoints, an audit abstraction, and
|
||||
more. If you want to switch off the built in features, or extend or replace them, it
|
||||
|
@ -22,13 +22,12 @@ import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryE
|
||||
import org.springframework.boot.actuate.endpoint.annotation.EndpointExtension;
|
||||
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
|
||||
import org.springframework.boot.actuate.endpoint.web.WebEndpointResponse;
|
||||
import org.springframework.boot.actuate.endpoint.web.annotation.EndpointWebExtension;
|
||||
import org.springframework.boot.actuate.health.Health;
|
||||
import org.springframework.boot.actuate.health.HealthEndpoint;
|
||||
import org.springframework.boot.actuate.health.ReactiveHealthEndpointWebExtension;
|
||||
|
||||
/**
|
||||
* Reactive {@link EndpointWebExtension} for the {@link HealthEndpoint} that always
|
||||
* Reactive {@link EndpointExtension} for the {@link HealthEndpoint} that always
|
||||
* exposes full health details.
|
||||
*
|
||||
* @author Madhura Bhave
|
||||
|
@ -20,13 +20,12 @@ import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryE
|
||||
import org.springframework.boot.actuate.endpoint.annotation.EndpointExtension;
|
||||
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
|
||||
import org.springframework.boot.actuate.endpoint.web.WebEndpointResponse;
|
||||
import org.springframework.boot.actuate.endpoint.web.annotation.EndpointWebExtension;
|
||||
import org.springframework.boot.actuate.health.Health;
|
||||
import org.springframework.boot.actuate.health.HealthEndpoint;
|
||||
import org.springframework.boot.actuate.health.HealthEndpointWebExtension;
|
||||
|
||||
/**
|
||||
* {@link EndpointWebExtension} for the {@link HealthEndpoint} that always exposes full
|
||||
* {@link EndpointExtension} for the {@link HealthEndpoint} that always exposes full
|
||||
* health details.
|
||||
*
|
||||
* @author Madhura Bhave
|
||||
|
@ -41,8 +41,8 @@ public class EndpointMediaTypes {
|
||||
* @param consumed the default media types that are consumed by an endpoint. Must not
|
||||
*/
|
||||
public EndpointMediaTypes(List<String> produced, List<String> consumed) {
|
||||
Assert.notNull(produced, () -> "Produced must not be null");
|
||||
Assert.notNull(consumed, () -> "Consumed must not be null");
|
||||
Assert.notNull(produced, "Produced must not be null");
|
||||
Assert.notNull(consumed, "Consumed must not be null");
|
||||
this.produced = Collections.unmodifiableList(produced);
|
||||
this.consumed = Collections.unmodifiableList(consumed);
|
||||
}
|
||||
|
@ -72,6 +72,8 @@ public class AutoConfigurationImportSelector
|
||||
private static final Log logger = LogFactory
|
||||
.getLog(AutoConfigurationImportSelector.class);
|
||||
|
||||
private static final String PROPERTY_NAME_AUTOCONFIGURE_EXCLUDE = "spring.autoconfigure.exclude";
|
||||
|
||||
private ConfigurableListableBeanFactory beanFactory;
|
||||
|
||||
private Environment environment;
|
||||
@ -213,13 +215,12 @@ public class AutoConfigurationImportSelector
|
||||
}
|
||||
|
||||
private List<String> getExcludeAutoConfigurationsProperty() {
|
||||
String name = "spring.autoconfigure.exclude";
|
||||
if (getEnvironment() instanceof ConfigurableEnvironment) {
|
||||
Binder binder = Binder.get(getEnvironment());
|
||||
return binder.bind(name, String[].class).map(Arrays::asList)
|
||||
return binder.bind(PROPERTY_NAME_AUTOCONFIGURE_EXCLUDE, String[].class).map(Arrays::asList)
|
||||
.orElse(Collections.emptyList());
|
||||
}
|
||||
String[] excludes = getEnvironment().getProperty(name, String[].class);
|
||||
String[] excludes = getEnvironment().getProperty(PROPERTY_NAME_AUTOCONFIGURE_EXCLUDE, String[].class);
|
||||
return (excludes == null ? Collections.emptyList() : Arrays.asList(excludes));
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.servlet;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@ -35,7 +36,7 @@ import org.springframework.web.servlet.mvc.ParameterizableViewController;
|
||||
|
||||
/**
|
||||
* An {@link AbstractUrlHandlerMapping} for an application's welcome page. Supports both
|
||||
* static and templated files. If both a static and templated index page is available, the
|
||||
* static and templated files. If both a static and templated index page are available, the
|
||||
* static page is preferred.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
@ -45,6 +46,8 @@ final class WelcomePageHandlerMapping extends AbstractUrlHandlerMapping {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(WelcomePageHandlerMapping.class);
|
||||
|
||||
private static final List<MediaType> MEDIA_TYPES_ALL = Collections.singletonList(MediaType.ALL);
|
||||
|
||||
WelcomePageHandlerMapping(TemplateAvailabilityProviders templateAvailabilityProviders,
|
||||
ApplicationContext applicationContext, Optional<Resource> welcomePage,
|
||||
String staticPathPattern) {
|
||||
@ -85,8 +88,10 @@ final class WelcomePageHandlerMapping extends AbstractUrlHandlerMapping {
|
||||
|
||||
private List<MediaType> getAcceptedMediaTypes(HttpServletRequest request) {
|
||||
String acceptHeader = request.getHeader(HttpHeaders.ACCEPT);
|
||||
return MediaType.parseMediaTypes(
|
||||
StringUtils.hasText(acceptHeader) ? acceptHeader : "*/*");
|
||||
if (StringUtils.hasText(acceptHeader)) {
|
||||
return MediaType.parseMediaTypes(acceptHeader);
|
||||
}
|
||||
return MEDIA_TYPES_ALL;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ public class CassandraRepositoriesAutoConfigurationTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void enablingNoRepositoriesDisablesReactiveRepositories() {
|
||||
public void enablingNoRepositoriesDisablesImperativeRepositories() {
|
||||
this.runner.withUserConfiguration(TestConfiguration.class)
|
||||
.withPropertyValues("spring.data.cassandra.repositories.type=none")
|
||||
.run((context) -> assertThat(context)
|
||||
|
@ -97,7 +97,7 @@ public class MongoRepositoriesAutoConfigurationTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void enablingNoRepositoriesDisablesReactiveRepositories() {
|
||||
public void enablingNoRepositoriesDisablesImperativeRepositories() {
|
||||
this.runner.withUserConfiguration(TestConfiguration.class)
|
||||
.withPropertyValues("spring.data.mongodb.repositories.type=none")
|
||||
.run((context) -> assertThat(context)
|
||||
|
@ -293,7 +293,7 @@ public class SecurityAutoConfigurationTests {
|
||||
protected static class TestUserDetailsServiceConfiguration {
|
||||
|
||||
@Bean
|
||||
public InMemoryUserDetailsManager myUserDetailsService() {
|
||||
public InMemoryUserDetailsManager myUserDetailsManager() {
|
||||
return new InMemoryUserDetailsManager(
|
||||
User.withUsername("foo").password("bar").roles("USER").build());
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ public class WelcomePageHandlerMappingTests {
|
||||
public void handlesRequestForStaticPageThatAcceptsAll() {
|
||||
this.contextRunner.withUserConfiguration(StaticResourceConfiguration.class)
|
||||
.run((context) -> MockMvcBuilders.webAppContextSetup(context).build()
|
||||
.perform(get("/").accept("*/*")).andExpect(status().isOk())
|
||||
.perform(get("/").accept(MediaType.ALL)).andExpect(status().isOk())
|
||||
.andExpect(forwardedUrl("index.html")));
|
||||
}
|
||||
|
||||
|
@ -46,9 +46,11 @@ class ConditionEvaluationDeltaLoggingListener
|
||||
if (!delta.getConditionAndOutcomesBySource().isEmpty()
|
||||
|| !delta.getExclusions().isEmpty()
|
||||
|| !delta.getUnconditionalClasses().isEmpty()) {
|
||||
this.logger.info("Condition evaluation delta:"
|
||||
+ new ConditionEvaluationReportMessage(delta,
|
||||
"CONDITION EVALUATION DELTA"));
|
||||
if (this.logger.isInfoEnabled()) {
|
||||
this.logger.info("Condition evaluation delta:"
|
||||
+ new ConditionEvaluationReportMessage(delta,
|
||||
"CONDITION EVALUATION DELTA"));
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.logger.info("Condition evaluation unchanged");
|
||||
|
@ -1140,12 +1140,12 @@ content into your application. Rather, pick only the properties that you need.
|
||||
management.endpoint.conditions.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
management.endpoint.conditions.enabled= # Whether to enable the conditions endpoint.
|
||||
|
||||
# CONFIGURATION PROPERTIES REPORT ENDPOINT ({sc-spring-boot-actuator}/context/properties/ConfigurationPropertiesReportEndpoint.{sc-ext}[ConfigurationPropertiesReportEndpoint])
|
||||
# CONFIGURATION PROPERTIES REPORT ENDPOINT ({sc-spring-boot-actuator}/context/properties/ConfigurationPropertiesReportEndpoint.{sc-ext}[ConfigurationPropertiesReportEndpoint], {sc-spring-boot-actuator-autoconfigure}/context/properties/ConfigurationPropertiesReportEndpointProperties.{sc-ext}[ConfigurationPropertiesReportEndpointProperties])
|
||||
management.endpoint.configprops.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
management.endpoint.configprops.enabled= # Whether to enable the configprops endpoint.
|
||||
management.endpoint.configprops.keys-to-sanitize=password,secret,key,token,.*credentials.*,vcap_services # Keys that should be sanitized. Keys can be simple strings that the property ends with or regular expressions.
|
||||
|
||||
# ENVIRONMENT ENDPOINT ({sc-spring-boot-actuator}/env/EnvironmentEndpoint.{sc-ext}[EnvironmentEndpoint])
|
||||
# ENVIRONMENT ENDPOINT ({sc-spring-boot-actuator}/env/EnvironmentEndpoint.{sc-ext}[EnvironmentEndpoint], {sc-spring-boot-actuator-autoconfigure}/env/EnvironmentEndpointProperties.{sc-ext}[EnvironmentEndpointProperties])
|
||||
management.endpoint.env.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
management.endpoint.env.enabled= # Whether to enable the env endpoint.
|
||||
management.endpoint.env.keys-to-sanitize=password,secret,key,token,.*credentials.*,vcap_services # Keys that should be sanitized. Keys can be simple strings that the property ends with or regular expressions.
|
||||
@ -1154,10 +1154,10 @@ content into your application. Rather, pick only the properties that you need.
|
||||
management.endpoint.flyway.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
management.endpoint.flyway.enabled= # Whether to enable the flyway endpoint.
|
||||
|
||||
# HEALTH ENDPOINT ({sc-spring-boot-actuator}/health/HealthEndpoint.{sc-ext}[HealthEndpoint])
|
||||
# HEALTH ENDPOINT ({sc-spring-boot-actuator}/health/HealthEndpoint.{sc-ext}[HealthEndpoint], {sc-spring-boot-actuator-autoconfigure}/health/HealthEndpointProperties.{sc-ext}[HealthEndpointProperties])
|
||||
management.endpoint.health.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
management.endpoint.health.enabled= # Whether to enable the health endpoint.
|
||||
management.endpoint.health.show-details= # Whether to show full health details
|
||||
management.endpoint.health.show-details=false # Whether to show full health details instead of just the status when exposed over a potentially insecure connection.
|
||||
|
||||
# HEAP DUMP ENDPOINT ({sc-spring-boot-actuator}/management/HeapDumpWebEndpoint.{sc-ext}[HeapDumpWebEndpoint])
|
||||
management.endpoint.heapdump.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
@ -1171,7 +1171,7 @@ content into your application. Rather, pick only the properties that you need.
|
||||
management.endpoint.liquibase.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
management.endpoint.liquibase.enabled= # Whether to enable the liquibase endpoint.
|
||||
|
||||
# LOG FILE ENDPOINT ({sc-spring-boot-actuator}/logging/LogFileWebEndpoint.{sc-ext}[LogFileWebEndpoint])
|
||||
# LOG FILE ENDPOINT ({sc-spring-boot-actuator}/logging/LogFileWebEndpoint.{sc-ext}[LogFileWebEndpoint], {sc-spring-boot-actuator-autoconfigure}/logging/LogFileWebEndpointProperties.{sc-ext}[LogFileWebEndpointProperties])
|
||||
management.endpoint.logfile.cache.time-to-live=0ms # Maximum time that a response can be cached.
|
||||
management.endpoint.logfile.enabled= # Whether to enable the logfile endpoint.
|
||||
management.endpoint.logfile.external-file= # External Logfile to be accessed. Can be used if the logfile is written by output redirect and not by the logging system itself.
|
||||
@ -1223,8 +1223,8 @@ content into your application. Rather, pick only the properties that you need.
|
||||
management.health.elasticsearch.enabled=true # Whether to enable Elasticsearch health check.
|
||||
management.health.elasticsearch.indices= # Comma-separated index names.
|
||||
management.health.elasticsearch.response-timeout=100ms # The time to wait for a response from the cluster.
|
||||
management.health.jms.enabled=true # Whether to enable JMS health check.
|
||||
management.health.influxdb.enabled=true # Whether to enable InfluxDB health check.
|
||||
management.health.jms.enabled=true # Whether to enable JMS health check.
|
||||
management.health.ldap.enabled=true # Whether to enable LDAP health check.
|
||||
management.health.mail.enabled=true # Whether to enable Mail health check.
|
||||
management.health.mongo.enabled=true # Whether to enable MongoDB health check.
|
||||
|
@ -1904,7 +1904,7 @@ location of your `Repository` interfaces.
|
||||
|
||||
There are also flags (`+spring.data.*.repositories.enabled+` and
|
||||
`+spring.data.*.repositories.type+`) that you can use to switch the auto-configured
|
||||
repositories on and off in external configuration. Doing so is useful, for instance, in
|
||||
repositories on and off in external configuration. Doing so is useful, for instance, in
|
||||
case you want to switch off the Mongo repositories and still use the auto-configured
|
||||
`MongoTemplate`.
|
||||
|
||||
@ -2270,7 +2270,7 @@ it switches off the default webapp security settings in Spring Boot.
|
||||
=== Change the AuthenticationManager and Add User Accounts
|
||||
If you provide a `@Bean` of type `AuthenticationManager`, `AuthenticationProvider`
|
||||
or `UserDetailsService`, the default `@Bean` for `InMemoryUserDetailsManager` is not
|
||||
created, so you have the full feature set of Spring Security available (such as
|
||||
created. So you have the full feature set of Spring Security available (such as
|
||||
http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#jc-authentication[various authentication options]).
|
||||
|
||||
The easiest way to add user accounts is to provide your own `UserDetailsService` bean.
|
||||
|
@ -28,7 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
public class ItemMetadataTests {
|
||||
|
||||
@Test
|
||||
public void newItemMetadataPrefixWithUpperCasePrefix() {
|
||||
public void newItemMetadataPrefixWithCapitalizedPrefix() {
|
||||
assertThat(newItemMetadataPrefix("Prefix.", "value")).isEqualTo("prefix.value");
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@ public class StringSequenceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void creatFromString() {
|
||||
public void createFromString() {
|
||||
assertThat(new StringSequence("test").toString()).isEqualTo("test");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user