tutorial starter run mvn mundo hola español java console-application spring-boot

java - starter - ¿Cómo funciona una aplicación basada en la consola Spring Boot?



spring boot starter web (1)

Deberías tener un cargador estándar:

@SpringBootApplication public class MyDemoApplication { public static void main(String[] args) { SpringApplication.run(MyDemoApplication.class, args); } }

e implementar una interfaz CommandLineRunner con anotación @Component

@Component public class MyRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { } }

@EnableAutoConfiguration hará la magia habitual de SpringBoot.

ACTUALIZAR:

Como @jeton sugiere que los otros Springboot implemente una escalera:

spring.main.web-environment=false spring.main.banner-mode=off

Ver documentos en 72.2

Si estoy desarrollando una aplicación bastante simple basada en la consola Spring Boot, no estoy seguro de la ubicación del código de ejecución principal. ¿Debo colocarlo en el método public static void main(String[] args) , o hacer que la clase de aplicación principal implemente la interfaz CommandLineRunner y coloque el código en el método run(String... args) ?

Usaré un ejemplo como contexto. Digamos que tengo la siguiente aplicación [rudimentaria] ( codificada en interfaces, estilo Spring ):

Application.java

public class Application { @Autowired private GreeterService greeterService; public static void main(String[] args) { // ****** // *** Where do I place the following line of code // *** in a Spring Boot version of this application? // ****** System.out.println(greeterService.greet(args)); } }

GreeterService.java (interfaz)

public interface GreeterService { String greet(String[] tokens); }

GreeterServiceImpl.java (clase de implementación)

@Service public class GreeterServiceImpl implements GreeterService { public String greet(String[] tokens) { String defaultMessage = "hello world"; if (args == null || args.length == 0) { return defaultMessage; } StringBuilder message = new StringBuilder(); for (String token : tokens) { if (token == null) continue; message.append(token).append(''-''); } return message.length() > 0 ? message.toString() : defaultMessage; } }

La versión Spring Boot equivalente de Application.java sería algo similar a lo siguiente : GreeterServiceImpl.java (clase de implementación)

@EnableAutoConfiguration public class Application // *** Should I bother to implement this interface for this simple app? implements CommandLineRunner { @Autowired private GreeterService greeterService; public static void main(String[] args) { SpringApplication.run(Application.class, args); System.out.println(greeterService.greet(args)); // here? } // Only if I implement the CommandLineRunner interface... public void run(String... args) throws Exception { System.out.println(greeterService.greet(args)); // or here? } }