Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
133304c4
Commit
133304c4
authored
Jul 02, 2014
by
Christian Dupuis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resolve placeholders in banner through Enviornment
see #1191
parent
e9c69aa4
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
22 deletions
+37
-22
SpringApplication.java
...main/java/org/springframework/boot/SpringApplication.java
+23
-21
SpringApplicationTests.java
...java/org/springframework/boot/SpringApplicationTests.java
+11
-1
test-banner-with-placeholder.txt
...-boot/src/test/resources/test-banner-with-placeholder.txt
+3
-0
No files found.
spring-boot/src/main/java/org/springframework/boot/SpringApplication.java
View file @
133304c4
...
...
@@ -77,38 +77,38 @@ import org.springframework.web.context.support.StandardServletEnvironment;
* Classes that can be used to bootstrap and launch a Spring application from a Java main
* method. By default class will perform the following steps to bootstrap your
* application:
*
*
* <ul>
* <li>Create an appropriate {@link ApplicationContext} instance (depending on your
* classpath)</li>
*
*
* <li>Register a {@link CommandLinePropertySource} to expose command line arguments as
* Spring properties</li>
*
*
* <li>Refresh the application context, loading all singleton beans</li>
*
*
* <li>Trigger any {@link CommandLineRunner} beans</li>
* </ul>
*
*
* In most circumstances the static {@link #run(Object, String[])} method can be called
* directly from your {@literal main} method to bootstrap your application:
*
*
* <pre class="code">
* @Configuration
* @EnableAutoConfiguration
* public class MyApplication {
*
*
* // ... Bean definitions
*
*
* public static void main(String[] args) throws Exception {
* SpringApplication.run(MyApplication.class, args);
* }
* </pre>
*
*
* <p>
* For more advanced configuration a {@link SpringApplication} instance can be created and
* customized before being run:
*
*
* <pre class="code">
* public static void main(String[] args) throws Exception {
* SpringApplication app = new SpringApplication(MyApplication.class);
...
...
@@ -116,29 +116,30 @@ import org.springframework.web.context.support.StandardServletEnvironment;
* app.run(args)
* }
* </pre>
*
*
* {@link SpringApplication}s can read beans from a variety of different sources. It is
* generally recommended that a single {@code @Configuration} class is used to bootstrap
* your application, however, any of the following sources can also be used:
*
*
* <p>
* <ul>
* <li>{@link Class} - A Java class to be loaded by {@link AnnotatedBeanDefinitionReader}</li>
*
*
* <li>{@link Resource} - An XML resource to be loaded by {@link XmlBeanDefinitionReader},
* or a groovy script to be loaded by {@link GroovyBeanDefinitionReader}</li>
*
*
* <li>{@link Package} - A Java package to be scanned by
* {@link ClassPathBeanDefinitionScanner}</li>
*
*
* <li>{@link CharSequence} - A class name, resource handle or package name to loaded as
* appropriate. If the {@link CharSequence} cannot be resolved to class and does not
* resolve to a {@link Resource} that exists it will be considered a {@link Package}.</li>
* </ul>
*
*
* @author Phillip Webb
* @author Dave Syer
* @author Andy Wilkinson
* @author Christian Dupuis
* @see #run(Object, String[])
* @see #run(Object[], String[])
* @see #SpringApplication(Object...)
...
...
@@ -152,7 +153,7 @@ public class SpringApplication {
+
"boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext"
;
private
static
final
String
[]
WEB_ENVIRONMENT_CLASSES
=
{
"javax.servlet.Servlet"
,
"org.springframework.web.context.ConfigurableWebApplicationContext"
};
"org.springframework.web.context.ConfigurableWebApplicationContext"
};
private
static
final
String
SYSTEM_PROPERTY_JAVA_AWT_HEADLESS
=
"java.awt.headless"
;
...
...
@@ -478,10 +479,11 @@ public class SpringApplication {
Resource
resource
=
resourceLoader
.
getResource
(
location
);
if
(
resource
.
exists
())
{
try
{
S
ystem
.
out
.
println
(
StreamUtils
.
copyToString
(
S
tring
banner
=
StreamUtils
.
copyToString
(
resource
.
getInputStream
(),
environment
.
getProperty
(
"banner.charset"
,
Charset
.
class
,
Charset
.
forName
(
"UTF-8"
))));
Charset
.
forName
(
"UTF-8"
)));
System
.
out
.
println
(
environment
.
resolvePlaceholders
(
banner
));
return
;
}
catch
(
Exception
ex
)
{
...
...
@@ -546,7 +548,7 @@ public class SpringApplication {
if
(
this
.
resourceLoader
!=
null
)
{
if
(
context
instanceof
GenericApplicationContext
)
{
((
GenericApplicationContext
)
context
)
.
setResourceLoader
(
this
.
resourceLoader
);
.
setResourceLoader
(
this
.
resourceLoader
);
}
if
(
context
instanceof
DefaultResourceLoader
)
{
((
DefaultResourceLoader
)
context
).
setClassLoader
(
this
.
resourceLoader
...
...
@@ -579,7 +581,7 @@ public class SpringApplication {
protected
void
logStartupInfo
(
boolean
isRoot
)
{
if
(
isRoot
)
{
new
StartupInfoLogger
(
this
.
mainApplicationClass
)
.
logStarting
(
getApplicationLog
());
.
logStarting
(
getApplicationLog
());
}
}
...
...
spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java
View file @
133304c4
...
...
@@ -79,10 +79,11 @@ import static org.mockito.Mockito.verify;
/**
* Tests for {@link SpringApplication}.
*
*
* @author Phillip Webb
* @author Dave Syer
* @author Andy Wilkinson
* @author Christian Dupuis
*/
public
class
SpringApplicationTests
{
...
...
@@ -162,6 +163,15 @@ public class SpringApplicationTests {
verify
(
application
,
never
()).
printBanner
();
}
@Test
public
void
customBannerWithProperties
()
throws
Exception
{
SpringApplication
application
=
spy
(
new
SpringApplication
(
ExampleConfig
.
class
));
application
.
setWebEnvironment
(
false
);
application
.
run
(
"--banner.location=classpath:test-banner-with-placeholder.txt"
,
"--test.property=123456"
);
verify
(
application
,
never
()).
printBanner
();
}
@Test
public
void
customId
()
throws
Exception
{
SpringApplication
application
=
new
SpringApplication
(
ExampleConfig
.
class
);
...
...
spring-boot/src/test/resources/test-banner-with-placeholder.txt
0 → 100644
View file @
133304c4
Running a Test!
${test.property}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment