Luego de de nuestra prolongada recopilación de datos hemos podido solucionar esta contratiempo que tienen muchos los usuarios. Te ofrecemos la solución y deseamos resultarte de mucha apoyo.
Solución:
- Sí, Spring Boot ya no depende de la configuración xml y configura automáticamente un equivalente al servlet del despachador. Puede seguir el siguiente enlace para ver cómo registrar sus filtros: ¿Cómo agregar una clase de filtro en Spring Boot?
- Si usa maven y no gradle, el único XML en su proyecto de arranque de primavera debería ser
pom.xml
. El camino a seguir con el arranque de primavera es mover toda su configuración xml, web.xml, etc. a la configuración automática de arranque de primavera + su configuración de Java.
Spring boot funciona muy bien cuando haces todo en la configuración de Java y sigues sus principios. Desde mi experiencia con él, cuando comienzas a fusionar la configuración XML y el resorte heredado, comienza a romper el proceso de configuración automática y es mucho mejor intentar todo lo que puedas para cumplir con las nuevas mejores prácticas de arranque de resorte.
-
Puedes mantener tu
web.xml
pero necesita agregarorg.springframework.boot.legacy.context.web.SpringBootContextLoaderListener en
web.xml
. Y, dependencia requerida depom.xml
. -
Todas las clases de oyentes, los filtros se convierten en la clase Java. esta clase seria
@Configuration.
-
Si tiene un interceptor, puede moverlo a la clase de configuración.
Spring-boot prefiere anotaciones sobre xml configuraciones basadas, por lo que en su caso en lugar de usar web.xml
para configurar el servlet, servlet-mapping, filter
y filter mapping
puede usar creaciones automáticas de beans basadas en anotaciones para registrar beans. Para eso necesita:
- Convierta las asignaciones basadas en xml en asignaciones basadas en anotaciones
- Crear frijoles usando
@Bean
anotaciones para que spring-boot las tome automáticamente durante el escaneo de componentes.
Para referencia: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html
- Para registrar filtros y agregar frijoles de filtro puedes crear una clase y anotarla con el
@Configuration
o@Component
anotación y crear bean deFilterRegistrationBean
para registrar el filtro. También puede crear los beans del filtro usando la anotación @Bean.
Por ejemplo, el equivalente del siguiente filtro basado en xml
SomeUrlFilter
com.company.SomeUrlFilter
SomeUrlFilter
/url/*
paramName
paramValue
La base de anotación equivalente será:
@Bean
public FilterRegistrationBean someUrlFilterRegistration()
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(someUrlFilter());
registration.addUrlPatterns("/url/*");
registration.addInitParameter("paramName", "paramValue");
registration.setName("Filter");
registration.setOrder(1);
return registration;
@Bean(name = "someUrlFilter")
public Filter someUrlFilter()
return new SomeUrlFilter();
- Springboot todavía nos permite usar las configuraciones basadas en xml, por ejemplo, si desea usar el
web.xml
.Por ejemplo :
Web.xml
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/spring/dispatcher.xml
1
dispatcher
/
y en otro archivo despachador.xml puedes crear beans como:
Tenga en cuenta que la primavera web.xml
normalmente vivirá en src/main/webapp/WEB-INF
.
Puede consultar: https://www.baeldung.com/register-servlet
Recuerda que puedes difundir este enunciado si te fue útil.