Весенняя загрузка консоли приложение
1. Обзор
В этом быстром учебнике мы изумим, как создать простое консоль на основе приложения с помощью Spring Boot.
2. Мейвен зависимостей
Наш проект опирается на пружинную загрузку родителей:
org.springframework.boot spring-boot-starter-parent 2.4.0
Первоначальная зависимость требуется:
org.springframework.boot spring-boot-starter
3. Консоль приложение
Наше консоль приложение состоит из одного класса: SpringBootConsoleАппликация.java – это основной класс для приложения консоли Spring Boot.
Мы используем Весенний @SpringBootApplication аннотация на нашем основном классе, чтобы включить автоматическую конфигурацию.
Этот класс также реализует Весенний CommandLineRunner интерфейс . CommandLineRunner это простой интерфейс Spring Boot с запустить метод. Весенняя загрузка автоматически позвонит в запустить метод всех бобов, реализуя этот интерфейс после загрузки контекста приложения.
Вот наше консоль приложение:
@SpringBootApplication public class SpringBootConsoleApplication implements CommandLineRunner { private static Logger LOG = LoggerFactory .getLogger(SpringBootConsoleApplication.class); public static void main(String[] args) { LOG.info("STARTING THE APPLICATION"); SpringApplication.run(SpringBootConsoleApplication.class, args); LOG.info("APPLICATION FINISHED"); } @Override public void run(String... args) { LOG.info("EXECUTING : command line runner"); for (int i = 0; i < args.length; ++i) { LOG.info("args[{}]: {}", i, args[i]); } } }
Мы должны также указать spring.main.web-application-type-NONE Весенний . Это свойство будет явно информировать Весна, что это не веб-приложение.
Когда мы выполняем SpringBootConsoleАппликация , мы можем видеть следующие зарегистрированы:
00:48:51.888 [main] INFO c.b.s.SpringBootConsoleApplication - STARTING THE APPLICATION 00:48:52.752 [main] INFO c.b.s.SpringBootConsoleApplication - No active profile set, falling back to default profiles: default 00:48:52.851 [main] INFO o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.spring[email protected]6497b078: startup date [Sat Jun 16 00:48:52 IST 2018]; root of context hierarchy 00:48:53.832 [main] INFO o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup 00:48:53.854 [main] INFO c.b.s.SpringBootConsoleApplication - EXECUTING : command line runner 00:48:53.854 [main] INFO c.b.s.SpringBootConsoleApplication - args[0]: Hello World! 00:48:53.860 [main] INFO c.b.s.SpringBootConsoleApplication - Started SpringBootConsoleApplication in 1.633 seconds (JVM running for 2.373) 00:48:53.860 [main] INFO c.b.s.SpringBootConsoleApplication - APPLICATION FINISHED 00:48:53.868 [Thread-2] INFO o.s.c.a.AnnotationConfigApplicationContext - Closing org.spring[email protected]6497b078: startup date [Sat Jun 16 00:48:52 IST 2018]; root of context hierarchy 00:48:53.870 [Thread-2] INFO o.s.j.e.a.AnnotationMBeanExporter - Unregistering JMX-exposed beans on shutdown
Обратите внимание, что запустить метод называется после загрузки контекста приложения, но перед выполнением основные метод завершен.
Большинство консольных приложений будет иметь только один класс, который реализует CommandLineRunner . Если приложение имеет несколько классов, которые реализуют CommandLineRunner , порядок исполнения может быть указан с помощью Весенняя @Order аннотация .
4. Заключение
В этой статье мы обобщили, как создать простое консольное приложение с помощью Spring Boot.
Полный исходный код наших примеров здесь, как всегда, более на GitHub .