Soy nuevo en Java y Spring. ¿Cómo puedo asignar la raíz de mi aplicación http://localhost:8080/a una estática index.html? Si navego a http://localhost:8080/index.htmlsu funciona bien.
La estructura de mi aplicación es:

Mi config\WebConfig.javaaspecto es este:
@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
}
Traté de agregar registry.addResourceHandler("/").addResourceLocations("/index.html");pero falla.
java
spring
spring-boot
Shoham
fuente
fuente

http://localhost:8080/appNamepero no es lo que necesito ...Respuestas:
Hubiera salido de la caja si no hubieras usado
@EnableWebMvcanotaciones. Cuando haces eso, apagas todas las cosas que Spring Boot hace por tiWebMvcAutoConfiguration. Puede eliminar esa anotación, o puede volver a agregar el controlador de vista que apagó:fuente
WebMvcConfigurerAdapter, pero sin@EnableWebMvc"index.htmla las/. Pero, ¿es posible hacer que el navegador realmente cambie la URL de/a/index.html?/que/index.htmlsu uso"redirect:/index.html"en lugar de hacia adelante.Un ejemplo de la respuesta de Dave Syer:
fuente
si es una aplicación de arranque Spring.
Spring Boot detecta automáticamente index.html en la carpeta public / static / webapp. Si ha escrito algún controlador
@Requestmapping("/"), anulará la función predeterminada y no mostrará el aindex.htmlmenos que escribalocalhost:8080/index.htmlfuente
fuente
Actualización: enero-2019
Primero cree una carpeta pública en recursos y cree el archivo index.html. Utilice WebMvcConfigurer en lugar de WebMvcConfigurerAdapter.
fuente
Si usa lo último
spring-boot 2.1.6.RELEASEcon una@RestControlleranotación simple, entonces no necesita hacer nada, simplemente agregue suindex.htmlarchivo en laresources/staticcarpeta:Luego presione la URL http: // localhost: 8080 . Espero que ayude a todos.
fuente
En el interior
Spring Boot, que siempre puso las páginas web dentro de una carpeta comopublicowebappsoviewsy colocarlo dentrosrc/main/resourcesdel directorio como se puede ver enapplication.propertiestambién.y este es mi
application.properties:tan pronto como ponga la URL como
servername:15800y esta solicitud recibida por el despachador de Servlet ocupado de Spring Boot, buscará exactamenteindex.htmly este nombre será sensible en caso despring.mvc.view.suffixque sea html, jsp, htm, etc.Espero que ayude a muchos.
fuente
El código fuente se ve así:
fuente
Yo tuve el mismo problema. Spring boot sabe dónde se encuentran los archivos html estáticos.
fuente
Puede agregar un RedirectViewController como:
fuente