From 88e80fccaa4a9f9774d4c32eeacef233762c3fc5 Mon Sep 17 00:00:00 2001
From: mrbird <852252810@qq.com>
Date: Wed, 13 Mar 2019 18:28:12 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=B1=E5=85=A5=E5=AD=A6=E4=B9=A0Spring=20Bo?=
=?UTF-8?q?ot=E4=B8=AD=E7=9A=84SpringApplication?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
45.Spring-Boot-SpringApplication/pom.xml | 43 +++++++++++++++
.../com/example/demo/DemoApplication.java | 24 +++++++++
...terHelloApplicationContextInitializer.java | 21 ++++++++
.../HelloApplicationContextInitializer.java | 18 +++++++
.../AfterContextClosedEventListener.java | 20 +++++++
.../listener/ContextClosedEventListener.java | 18 +++++++
.../listener/HelloApplicationRunListener.java | 52 +++++++++++++++++++
.../demo/runner/HelloApplicationRunner.java | 16 ++++++
.../demo/runner/HelloCommandLineRunner.java | 15 ++++++
.../main/resources/META-INF/spring.factories | 13 +++++
.../src/main/resources/application.properties | 1 +
.../example/demo/DemoApplicationTests.java | 16 ++++++
12 files changed, 257 insertions(+)
create mode 100644 45.Spring-Boot-SpringApplication/pom.xml
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/DemoApplication.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/AfterHelloApplicationContextInitializer.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/HelloApplicationContextInitializer.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/AfterContextClosedEventListener.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/ContextClosedEventListener.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/HelloApplicationRunListener.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloApplicationRunner.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloCommandLineRunner.java
create mode 100644 45.Spring-Boot-SpringApplication/src/main/resources/META-INF/spring.factories
create mode 100644 45.Spring-Boot-SpringApplication/src/main/resources/application.properties
create mode 100644 45.Spring-Boot-SpringApplication/src/test/java/com/example/demo/DemoApplicationTests.java
diff --git a/45.Spring-Boot-SpringApplication/pom.xml b/45.Spring-Boot-SpringApplication/pom.xml
new file mode 100644
index 0000000..8fef8e4
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/pom.xml
@@ -0,0 +1,43 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.1.0.RELEASE
+
+
+ com.example
+ SpringApplication
+ 0.0.1-SNAPSHOT
+ demo
+ Demo project for Spring Boot
+
+
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/DemoApplication.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/DemoApplication.java
new file mode 100644
index 0000000..38c53b2
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/DemoApplication.java
@@ -0,0 +1,24 @@
+package com.example.demo;
+
+import org.springframework.boot.Banner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.WebApplicationType;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+
+@SpringBootApplication
+public class DemoApplication {
+
+ public static void main(String[] args) {
+ // SpringApplication application = new SpringApplication(DemoApplication.class);
+ // application.setBannerMode(Banner.Mode.OFF);
+ // application.setWebApplicationType(WebApplicationType.NONE);
+ // application.setHeadless(true);
+ // application.run(args);
+
+ new SpringApplicationBuilder(DemoApplication.class)
+ .web(WebApplicationType.NONE)
+ .run(args);
+ }
+
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/AfterHelloApplicationContextInitializer.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/AfterHelloApplicationContextInitializer.java
new file mode 100644
index 0000000..5849b0d
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/AfterHelloApplicationContextInitializer.java
@@ -0,0 +1,21 @@
+package com.example.demo.initializer;
+
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.Ordered;
+
+/**
+ * @author MrBird
+ */
+public class AfterHelloApplicationContextInitializer
+ implements ApplicationContextInitializer, Ordered {
+ @Override
+ public void initialize(ConfigurableApplicationContext applicationContext) {
+ System.out.println("AfterHelloApplicationContextInitializer: " + applicationContext.getId());
+ }
+
+ @Override
+ public int getOrder() {
+ return Ordered.LOWEST_PRECEDENCE;
+ }
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/HelloApplicationContextInitializer.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/HelloApplicationContextInitializer.java
new file mode 100644
index 0000000..fab937d
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/initializer/HelloApplicationContextInitializer.java
@@ -0,0 +1,18 @@
+package com.example.demo.initializer;
+
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
+
+/**
+ * @author MrBird
+ */
+@Order(Ordered.HIGHEST_PRECEDENCE)
+public class HelloApplicationContextInitializer
+ implements ApplicationContextInitializer {
+ @Override
+ public void initialize(ConfigurableApplicationContext applicationContext) {
+ System.out.println("ConfigurableApplicationContext.id - " + applicationContext.getId());
+ }
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/AfterContextClosedEventListener.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/AfterContextClosedEventListener.java
new file mode 100644
index 0000000..5cbaff4
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/AfterContextClosedEventListener.java
@@ -0,0 +1,20 @@
+package com.example.demo.listener;
+
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextClosedEvent;
+import org.springframework.core.Ordered;
+
+/**
+ * @author MrBird
+ */
+public class AfterContextClosedEventListener implements ApplicationListener, Ordered {
+ @Override
+ public void onApplicationEvent(ContextClosedEvent event) {
+ System.out.println("AfterContextClosedEvent: " + event.getApplicationContext().getId());
+ }
+
+ @Override
+ public int getOrder() {
+ return Ordered.HIGHEST_PRECEDENCE + 1;
+ }
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/ContextClosedEventListener.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/ContextClosedEventListener.java
new file mode 100644
index 0000000..789259b
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/ContextClosedEventListener.java
@@ -0,0 +1,18 @@
+package com.example.demo.listener;
+
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextClosedEvent;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
+
+/**
+ * @author MrBird
+ */
+@Order(Ordered.HIGHEST_PRECEDENCE)
+public class ContextClosedEventListener implements ApplicationListener {
+
+ @Override
+ public void onApplicationEvent(ContextClosedEvent event) {
+ System.out.println("ContextClosedEvent: " + event.getApplicationContext().getId());
+ }
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/HelloApplicationRunListener.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/HelloApplicationRunListener.java
new file mode 100644
index 0000000..44a6269
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/listener/HelloApplicationRunListener.java
@@ -0,0 +1,52 @@
+package com.example.demo.listener;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.SpringApplicationRunListener;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.env.ConfigurableEnvironment;
+
+/**
+ * @author MrBird
+ */
+public class HelloApplicationRunListener implements SpringApplicationRunListener {
+
+
+ public HelloApplicationRunListener(SpringApplication application, String[] args) {
+ }
+
+
+ @Override
+ public void starting() {
+ System.out.println("HelloApplicationRunListener starting......");
+ }
+
+ @Override
+ public void environmentPrepared(ConfigurableEnvironment environment) {
+
+ }
+
+ @Override
+ public void contextPrepared(ConfigurableApplicationContext context) {
+
+ }
+
+ @Override
+ public void contextLoaded(ConfigurableApplicationContext context) {
+
+ }
+
+ @Override
+ public void started(ConfigurableApplicationContext context) {
+
+ }
+
+ @Override
+ public void running(ConfigurableApplicationContext context) {
+
+ }
+
+ @Override
+ public void failed(ConfigurableApplicationContext context, Throwable exception) {
+
+ }
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloApplicationRunner.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloApplicationRunner.java
new file mode 100644
index 0000000..9ae9dba
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloApplicationRunner.java
@@ -0,0 +1,16 @@
+package com.example.demo.runner;
+
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author MrBird
+ */
+@Component
+public class HelloApplicationRunner implements ApplicationRunner {
+ @Override
+ public void run(ApplicationArguments args) {
+ System.out.println("HelloApplicationRunner: hello spring boot");
+ }
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloCommandLineRunner.java b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloCommandLineRunner.java
new file mode 100644
index 0000000..bd3d0af
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/java/com/example/demo/runner/HelloCommandLineRunner.java
@@ -0,0 +1,15 @@
+package com.example.demo.runner;
+
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author MrBird
+ */
+@Component
+public class HelloCommandLineRunner implements CommandLineRunner {
+ @Override
+ public void run(String... args) {
+ System.out.println("HelloCommandLineRunner: hello spring boot");
+ }
+}
diff --git a/45.Spring-Boot-SpringApplication/src/main/resources/META-INF/spring.factories b/45.Spring-Boot-SpringApplication/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..504203a
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,13 @@
+# Initializers
+org.springframework.context.ApplicationContextInitializer=\
+com.example.demo.initializer.HelloApplicationContextInitializer,\
+com.example.demo.initializer.AfterHelloApplicationContextInitializer
+
+# Application Listeners
+org.springframework.context.ApplicationListener=\
+com.example.demo.listener.ContextClosedEventListener,\
+com.example.demo.listener.AfterContextClosedEventListener
+
+# Run Listeners
+org.springframework.boot.SpringApplicationRunListener=\
+com.example.demo.listener.HelloApplicationRunListener
\ No newline at end of file
diff --git a/45.Spring-Boot-SpringApplication/src/main/resources/application.properties b/45.Spring-Boot-SpringApplication/src/main/resources/application.properties
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/main/resources/application.properties
@@ -0,0 +1 @@
+
diff --git a/45.Spring-Boot-SpringApplication/src/test/java/com/example/demo/DemoApplicationTests.java b/45.Spring-Boot-SpringApplication/src/test/java/com/example/demo/DemoApplicationTests.java
new file mode 100644
index 0000000..480d1ca
--- /dev/null
+++ b/45.Spring-Boot-SpringApplication/src/test/java/com/example/demo/DemoApplicationTests.java
@@ -0,0 +1,16 @@
+package com.example.demo;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class DemoApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}