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() { + } + +}