Aplicativo do console de inicialização Spring
1. Visão geral
Neste tutorial rápido, vamos explorar como criar um aplicativo simples baseado em console usando Spring Boot.
2. Dependências do Maven
Nosso projeto depende do pai de inicialização por mola:
org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE
A dependência inicial necessária é:
org.springframework.boot
spring-boot-starter
3. Aplicação de console
Nosso aplicativo de console consiste em uma única classe:SpringBootConsoleApplication.java – esta é a classe principal para nosso aplicativo de console Spring Boot.
Estamos usandoSpring’s @SpringBootApplication annotation em nossa classe principal para habilitar a configuração automática.
Esta classe também implementaSpring’s CommandLineRunner interface. CommandLineRunner é uma interface simples do Spring Boot com um métodorun. Spring Boot irá chamar automaticamente o métodorun de todos os beans implementando esta interface após o contexto do aplicativo ter sido carregado.
Aqui está o nosso aplicativo de console:
@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]);
}
}
}
Devemos também especificarspring.main.web-application-type=NONESpring property. Esta propriedade informará explicitamente ao Spring que este não é um aplicativo da web.
Quando executamosSpringBootConsoleApplication, podemos ver o seguinte registrado:
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
Observe que o métodorun é chamado depois que o contexto do aplicativo é carregado, mas antes que a execução do métodomain seja concluída.
A maioria dos aplicativos de console terá apenas uma única classe que implementaCommandLineRunner. Se seu aplicativo tiver várias classes que implementamCommandLineRunner, a ordem de execução pode ser especificada usandoSpring’s @Order annotation.
4. Conclusão
Neste artigo, resumimos como criar um aplicativo simples baseado em console usando Spring Boot.
O código-fonte completo de nossos exemplos aqui é, como sempre,over on GitHub.