Closes gh-14184
pull/14268/head
Johnny Lim 6 years ago committed by Stephane Nicoll
parent be00c1db63
commit fb71174c24

@ -847,7 +847,7 @@ application.
[[deployment-whats-next]] [[deployment-whats-next]]
== What to Read Next == What to Read Next
Check out the https://www.cloudfoundry.com/[Cloud Foundry], Check out the https://www.cloudfoundry.org/[Cloud Foundry],
https://www.heroku.com/[Heroku], https://www.openshift.com[OpenShift], and https://www.heroku.com/[Heroku], https://www.openshift.com[OpenShift], and
https://boxfuse.com[Boxfuse] web sites for more information about the kinds of features https://boxfuse.com[Boxfuse] web sites for more information about the kinds of features
that a PaaS can offer. These are just four of the most popular Java PaaS providers. Since that a PaaS can offer. These are just four of the most popular Java PaaS providers. Since

@ -2000,7 +2000,7 @@ converters. You can also override default converters in the same way.
==== Custom JSON Serializers and Deserializers ==== Custom JSON Serializers and Deserializers
If you use Jackson to serialize and deserialize JSON data, you might want to write your If you use Jackson to serialize and deserialize JSON data, you might want to write your
own `JsonSerializer` and `JsonDeserializer` classes. Custom serializers are usually own `JsonSerializer` and `JsonDeserializer` classes. Custom serializers are usually
http://wiki.fasterxml.com/JacksonHowToCustomDeserializers[registered with Jackson through https://github.com/FasterXML/jackson-docs/wiki/JacksonHowToCustomSerializers[registered with Jackson through
a module], but Spring Boot provides an alternative `@JsonComponent` annotation that makes a module], but Spring Boot provides an alternative `@JsonComponent` annotation that makes
it easier to directly register Spring Beans. it easier to directly register Spring Beans.

@ -982,7 +982,7 @@ authors.
The `spring-boot-devtools` module includes an embedded LiveReload server that can be used The `spring-boot-devtools` module includes an embedded LiveReload server that can be used
to trigger a browser refresh when a resource is changed. LiveReload browser extensions to trigger a browser refresh when a resource is changed. LiveReload browser extensions
are freely available for Chrome, Firefox and Safari from are freely available for Chrome, Firefox and Safari from
https://livereload.com/extensions/[livereload.com]. http://livereload.com/extensions/[livereload.com].
If you do not want to start the LiveReload server when your application runs, you can set If you do not want to start the LiveReload server when your application runs, you can set
the `spring.devtools.livereload.enabled` property to `false`. the `spring.devtools.livereload.enabled` property to `false`.

@ -125,10 +125,8 @@ final class EnvironmentConverter {
names.add(propertySource.getName()); names.add(propertySource.getName());
} }
for (String name : names) { for (String name : names) {
if (!isServletEnvironment) { if (!isServletEnvironment
propertySources.remove(name); || !SERVLET_ENVIRONMENT_SOURCE_NAMES.contains(name)) {
}
else if (!SERVLET_ENVIRONMENT_SOURCE_NAMES.contains(name)) {
propertySources.remove(name); propertySources.remove(name);
} }
} }

@ -372,13 +372,14 @@ public class SpringApplication {
} }
private Class<? extends StandardEnvironment> deduceEnvironmentClass() { private Class<? extends StandardEnvironment> deduceEnvironmentClass() {
if (this.webApplicationType == WebApplicationType.SERVLET) { switch (this.webApplicationType) {
case SERVLET:
return StandardServletEnvironment.class; return StandardServletEnvironment.class;
} case REACTIVE:
if (this.webApplicationType == WebApplicationType.REACTIVE) {
return StandardReactiveWebEnvironment.class; return StandardReactiveWebEnvironment.class;
default:
return StandardEnvironment.class;
} }
return StandardEnvironment.class;
} }
private void prepareContext(ConfigurableApplicationContext context, private void prepareContext(ConfigurableApplicationContext context,
@ -472,13 +473,14 @@ public class SpringApplication {
if (this.environment != null) { if (this.environment != null) {
return this.environment; return this.environment;
} }
if (this.webApplicationType == WebApplicationType.SERVLET) { switch (this.webApplicationType) {
case SERVLET:
return new StandardServletEnvironment(); return new StandardServletEnvironment();
} case REACTIVE:
if (this.webApplicationType == WebApplicationType.REACTIVE) {
return new StandardReactiveWebEnvironment(); return new StandardReactiveWebEnvironment();
default:
return new StandardEnvironment();
} }
return new StandardEnvironment();
} }
/** /**

@ -1122,9 +1122,9 @@ public class SpringApplicationTests {
public void webApplicationConfiguredViaAPropertyHasTheCorrectTypeOfContextAndEnvironment() { public void webApplicationConfiguredViaAPropertyHasTheCorrectTypeOfContextAndEnvironment() {
ConfigurableApplicationContext context = new SpringApplication( ConfigurableApplicationContext context = new SpringApplication(
ExampleWebConfig.class).run("--spring.main.web-application-type=servlet"); ExampleWebConfig.class).run("--spring.main.web-application-type=servlet");
assertThat(context).isInstanceOfAny(WebApplicationContext.class); assertThat(context).isInstanceOf(WebApplicationContext.class);
assertThat(context.getEnvironment()) assertThat(context.getEnvironment())
.isInstanceOfAny(StandardServletEnvironment.class); .isInstanceOf(StandardServletEnvironment.class);
} }
@Test @Test
@ -1132,9 +1132,9 @@ public class SpringApplicationTests {
ConfigurableApplicationContext context = new SpringApplication( ConfigurableApplicationContext context = new SpringApplication(
ExampleReactiveWebConfig.class) ExampleReactiveWebConfig.class)
.run("--spring.main.web-application-type=reactive"); .run("--spring.main.web-application-type=reactive");
assertThat(context).isInstanceOfAny(ReactiveWebApplicationContext.class); assertThat(context).isInstanceOf(ReactiveWebApplicationContext.class);
assertThat(context.getEnvironment()) assertThat(context.getEnvironment())
.isInstanceOfAny(StandardReactiveWebEnvironment.class); .isInstanceOf(StandardReactiveWebEnvironment.class);
} }
@Test @Test
@ -1142,9 +1142,9 @@ public class SpringApplicationTests {
ConfigurableApplicationContext context = new SpringApplication( ConfigurableApplicationContext context = new SpringApplication(
ExampleReactiveWebConfig.class) ExampleReactiveWebConfig.class)
.run("--spring.profiles.active=withwebapplicationtype"); .run("--spring.profiles.active=withwebapplicationtype");
assertThat(context).isInstanceOfAny(ReactiveWebApplicationContext.class); assertThat(context).isInstanceOf(ReactiveWebApplicationContext.class);
assertThat(context.getEnvironment()) assertThat(context.getEnvironment())
.isInstanceOfAny(StandardReactiveWebEnvironment.class); .isInstanceOf(StandardReactiveWebEnvironment.class);
} }
@Test @Test

Loading…
Cancel
Save