Muchos desarrolladores de Spring Boot quieren que sus aplicaciones utilicen configuración automática, escaneo de
componentes y la capacidad de definir configuraciones adicionales en su "clase de aplicación". Para activar estas
tres funciones, puede utilizar una única anotación @SpringBootApplication
:
-
@EnableAutoConfiguration
: habilita el mecanismo de configuración automática de Spring Boot -
@ComponentScan
: permite escanear la anotación@Component
para el paquete en el que se encuentra la aplicación -
@SpringBootConfiguration
: le permite registrar beans adicionales en el contexto o importar clases de configuración adicionales. Una alternativa a la anotación estándar@Configuration
de Spring que ayuda a descubrir configuraciones en sus pruebas de integración.
importar org.springframework.boot.SpringApplication;
importar org.springframework.boot.autoconfigure.SpringBootApplication;
// Igual que @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan
@SpringBootAplicación
clase pública MiAplicación {
público estático vacío principal (String [] argumentos) {
SpringApplication.run(MiAplicación.clase, args);
}
}
importar org.springframework.boot.autoconfigure.SpringBootApplication
importar org.springframework.boot.runApplication
// igual que @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
@SpringBootAplicación
clase MiAplicación
diversión principal (argumentos: Array<String>) {
ejecutarAplicación<MiAplicación>(*args)
}
@SpringBootApplication
también proporciona alias para configurar
las anotaciones @EnableAutoConfiguration
y @ComponentScan
atributos.
Ninguna de estas funciones es necesaria y puede reemplazar esta anotación única con cualquiera de las funciones que habilita. Por ejemplo, puede optar por no utilizar el escaneo de componentes o el escaneo de propiedades de configuración en su aplicación:
importar org.springframework.boot.SpringApplication;
importar org.springframework.boot.SpringBootConfiguration;
importar org.springframework.boot.autoconfigure.EnableAutoConfiguration;
importar org.springframework.context.annotation.Import;
@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguración
@Importar({AlgunaConfiguración.clase, OtraConfiguración.clase })
clase pública MiAplicación {
público estático vacío principal (String [] argumentos) {
SpringApplication.run(MiAplicación.clase, args);
}
}
importar org.springframework.boot.SpringBootConfiguration
importar org.springframework.boot.autoconfigure.EnableAutoConfiguration
importar org.springframework.boot.docs.usando.estructurandosucódigo.ubicandolaclaseprincipal.MiAplicación
importar org.springframework.boot.runApplication
importar org.springframework.context.annotation.Importar
@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguración
@Importar(AlgunaConfiguración::clase, OtraConfiguración::clase)
clase MiAplicación
diversión principal (argumentos: Array<String>) {
ejecutarAplicación<MiAplicación>(*args)
}
En este ejemplo, MyApplication
es igual que cualquier otra aplicación Spring Boot, excepto que las
clases están anotadas con @Component
y @ConfigurationProperties
no se detectan
automáticamente y los beans personalizados se importan explícitamente (consulte la anotación
@Import
).
Ejecutando tu aplicación
Uno de los mayores beneficios de empaquetar su aplicación como un archivo jar y utilizar el servidor HTTP integrado es que puede ejecutar su aplicación como cualquier otra. Este ejemplo se utiliza para depurar aplicaciones en Spring Boot. No necesita ningún complemento o extensión especial para el IDE.
Ejecución desde IDE
Puede ejecutar una aplicación Spring Boot desde su IDE como una aplicación Java. Sin embargo, primero debe importar
el proyecto. Los pasos de importación dependen de su IDE y sistema de compilación. La mayoría de los IDE son capaces
de importar proyectos Maven directamente. Por ejemplo, los usuarios de Eclipse pueden seleccionar
Importar...
→ Proyectos Maven existentes
en el menú File
.
Si no puede importar directamente su proyecto al IDE, puede generar metadatos del IDE utilizando el complemento de compilación. Maven incluye complementos para Eclipse y IDEA. Gradle proporciona complementos para varios IDE.
Relanzar
en lugar del botón Run
para asegurarse de que cualquier instancia existente esté cerrada.
Ejecución como aplicación empaquetada
Si está utilizando los complementos Spring Boot para Maven o Gradle para crear un archivo jar ejecutable, puede
ejecutar su aplicación usando el comando java -jar
, como se muestra en el siguiente ejemplo:
$ java-jar target/myapplication-0.0.1-SNAPSHOT.jar
También puede ejecutar una aplicación empaquetada con la depuración remota habilitada. Esto le permite adjuntar un depurador a una aplicación empaquetada, como se muestra en el siguiente ejemplo:
$ java-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n \ -jar target/miaplicación-0.0.1-SNAPSHOT.jar
Usando el complemento Maven
El complemento Spring Boot Maven incluye un destino run
que puede utilizar para compilar y ejecutar
rápidamente su aplicación. Las aplicaciones se ejecutan en forma desensamblada, como en su IDE. El siguiente ejemplo
muestra un comando típico de Maven para ejecutar una aplicación Spring Boot:
$ mvn spring-boot:run
También puede utilizar la variable de entorno del sistema operativo MAVEN_OPTS
, como se muestra en el
siguiente ejemplo:
$ export MAVEN_OPTS=-Xmx1024m
Usando el complemento Gradle
El complemento Spring Boot Gradle también contiene una tarea bootRun
que se puede utilizar para ejecutar
la aplicación de forma inmediata. La tarea bootRun
se agrega cada vez que utiliza los complementos
org.springframework.boot
y java
y se muestra en el siguiente ejemplo:
$ gradle bootRun
También puede utilizar la variable de entorno del sistema operativo JAVA_OPTS
, como se muestra en el
siguiente ejemplo:
$ exportar JAVA_OPTS=-Xmx1024m
Intercambio en caliente
Dado que las aplicaciones Spring Boot son aplicaciones Java normales, el intercambio en caliente de JVM debería funcionar de inmediato. El intercambio en caliente en la JVM está algo limitado en el código de bytes que puede reemplazar. Como solución más completa, puede utilizar JRebel.
El módulo spring-boot-devtools
también contiene soporte para reiniciar aplicaciones rápidamente.