diff --git a/spring-5-mvc/src/main/java/com/baeldung/Spring5Application.java b/spring-5-mvc/src/main/java/com/baeldung/Spring5Application.java
index 41b5c1eed1..8251467122 100644
--- a/spring-5-mvc/src/main/java/com/baeldung/Spring5Application.java
+++ b/spring-5-mvc/src/main/java/com/baeldung/Spring5Application.java
@@ -1,7 +1,11 @@
package com.baeldung;
+import javax.servlet.Filter;
+
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.web.filter.DelegatingFilterProxy;
+import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
@SpringBootApplication
public class Spring5Application {
@@ -10,4 +14,31 @@ public class Spring5Application {
SpringApplication.run(Spring5Application.class, args);
}
+ public static class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
+
+ @Override
+ protected Class>[] getRootConfigClasses() {
+ return null;
+ }
+
+ @Override
+ protected Class>[] getServletConfigClasses() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected String[] getServletMappings() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected javax.servlet.Filter[] getServletFilters() {
+ DelegatingFilterProxy delegateFilterProxy = new DelegatingFilterProxy();
+ delegateFilterProxy.setTargetBeanName("loggingFilter");
+ return new Filter[] { delegateFilterProxy };
+ }
+ }
+
}
diff --git a/spring-5-mvc/src/main/java/com/baeldung/spring/filter/CustomFilter.java b/spring-5-mvc/src/main/java/com/baeldung/spring/filter/CustomFilter.java
new file mode 100644
index 0000000000..4aa33cd749
--- /dev/null
+++ b/spring-5-mvc/src/main/java/com/baeldung/spring/filter/CustomFilter.java
@@ -0,0 +1,38 @@
+package com.baeldung.spring.filter;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component("loggingFilter")
+public class CustomFilter implements Filter {
+
+ private static Logger LOGGER = LoggerFactory.getLogger(CustomFilter.class);
+
+ @Override
+ public void init(FilterConfig config) throws ServletException {
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+ HttpServletRequest req = (HttpServletRequest) request;
+ LOGGER.info("Request Info : " + req);
+ chain.doFilter(request, response);
+ }
+
+ @Override
+ public void destroy() {
+ // cleanup code, if necessary
+ }
+}
diff --git a/spring-5-mvc/src/main/webapp/WEB-INF/web.xml b/spring-5-mvc/src/main/webapp/WEB-INF/web.xml
index bfcf43dad2..43c7143e5b 100644
--- a/spring-5-mvc/src/main/webapp/WEB-INF/web.xml
+++ b/spring-5-mvc/src/main/webapp/WEB-INF/web.xml
@@ -16,6 +16,14 @@
functional
/
+
+ loggingFilter
+ org.springframework.web.filter.DelegatingFilterProxy
+
+
+ loggingFilter
+ /*
+
\ No newline at end of file