Консольное приложение Spring Boot
1. обзор
В этом кратком руководстве мы рассмотрим, как создать простое консольное приложение с помощью Spring Boot.
2. Maven Зависимости
Наш проект опирается на родителя весенней загрузки:
org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE
Требуемая начальная зависимость:
org.springframework.boot
spring-boot-starter
3. Консольное приложение
Наше консольное приложение состоит из одного класса:SpringBootConsoleApplication.java - это основной класс для нашего консольного приложения Spring Boot.
Мы используемSpring’s @SpringBootApplication annotation в нашем основном классе, чтобы включить автоконфигурацию.
Этот класс также реализуетSpring’s CommandLineRunner interface. CommandLineRunner - это простой интерфейс Spring Boot с методомrun. Spring Boot автоматически вызовет методrun всех компонентов, реализующих этот интерфейс, после загрузки контекста приложения.
Вот наше консольное приложение:
@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=NONESpring property. Это свойство явным образом проинформирует Spring, что это не веб-приложение.
Когда мы выполняемSpringBootConsoleApplication, мы видим следующее:
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
Обратите внимание, что методrun вызывается после загрузки контекста приложения, но до завершения выполнения методаmain.
В большинстве консольных приложений будет только один класс, реализующийCommandLineRunner. Если ваше приложение имеет несколько классов, реализующихCommandLineRunner, порядок выполнения можно указать с помощьюSpring’s @Order annotation.
4. Заключение
В этой статье мы кратко описали, как создать простое консольное приложение с помощью Spring Boot.
Полный исходный код наших примеров здесь, как всегда,over on GitHub.