diff --git a/spring-boot-rest-2/pom.xml b/spring-boot-rest-2/pom.xml
new file mode 100644
index 0000000000..d74c393f27
--- /dev/null
+++ b/spring-boot-rest-2/pom.xml
@@ -0,0 +1,44 @@
+
+
+ 4.0.0
+ com.baeldung.web
+ spring-boot-rest-2
+ spring-boot-rest-2
+ war
+ Spring Boot Rest Module
+
+
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../parent-boot-2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.springfox
+ springfox-boot-starter
+ 3.0.0
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/SpringBootRestApplication.java b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/SpringBootRestApplication.java
new file mode 100644
index 0000000000..510e208f9e
--- /dev/null
+++ b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/SpringBootRestApplication.java
@@ -0,0 +1,12 @@
+package com.baeldung.endpoint;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringBootRestApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootRestApplication.class, args);
+ }
+}
diff --git a/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/controller/HelloController.java b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/controller/HelloController.java
new file mode 100644
index 0000000000..732b298981
--- /dev/null
+++ b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/controller/HelloController.java
@@ -0,0 +1,15 @@
+package com.baeldung.endpoint.controller;
+
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class HelloController {
+
+ @GetMapping("/hello")
+ public ResponseEntity hello() {
+ return ResponseEntity.ok("hello baeldung");
+ }
+
+}
diff --git a/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/listener/AnnotationDrivenEndpointsListener.java b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/listener/AnnotationDrivenEndpointsListener.java
new file mode 100644
index 0000000000..c57f6b5ecd
--- /dev/null
+++ b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/listener/AnnotationDrivenEndpointsListener.java
@@ -0,0 +1,27 @@
+package com.baeldung.endpoint.listener;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.event.ContextRefreshedEvent;
+import org.springframework.context.event.EventListener;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+
+import java.util.Map;
+
+@Configuration
+public class AnnotationDrivenEndpointsListener {
+ private final Logger LOGGER = LoggerFactory.getLogger("AnnotationDrivenEndpointsListener.class");
+
+ @EventListener
+ public void handleContextRefresh(ContextRefreshedEvent event) {
+ ApplicationContext applicationContext = event.getApplicationContext();
+ RequestMappingHandlerMapping requestMappingHandlerMapping = applicationContext
+ .getBean("requestMappingHandlerMapping", RequestMappingHandlerMapping.class);
+ Map map = requestMappingHandlerMapping.getHandlerMethods();
+ map.forEach((key, value) -> LOGGER.info("{} {}", key, value));
+ }
+}
diff --git a/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/listener/EndpointsListener.java b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/listener/EndpointsListener.java
new file mode 100644
index 0000000000..ae00fc3927
--- /dev/null
+++ b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/listener/EndpointsListener.java
@@ -0,0 +1,27 @@
+package com.baeldung.endpoint.listener;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.event.ContextRefreshedEvent;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+
+import java.util.Map;
+
+@Configuration
+public class EndpointsListener implements ApplicationListener {
+ private final Logger LOGGER = LoggerFactory.getLogger("EndpointsListener.class");
+
+ @Override
+ public void onApplicationEvent(ContextRefreshedEvent event) {
+ ApplicationContext applicationContext = event.getApplicationContext();
+ RequestMappingHandlerMapping requestMappingHandlerMapping = applicationContext
+ .getBean("requestMappingHandlerMapping", RequestMappingHandlerMapping.class);
+ Map map = requestMappingHandlerMapping.getHandlerMethods();
+ map.forEach((key, value) -> LOGGER.info("{} {}", key, value));
+ }
+}
diff --git a/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/swagger/SpringFoxConfig.java b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/swagger/SpringFoxConfig.java
new file mode 100644
index 0000000000..bd258122cd
--- /dev/null
+++ b/spring-boot-rest-2/src/main/java/com/baeldung/endpoint/swagger/SpringFoxConfig.java
@@ -0,0 +1,21 @@
+package com.baeldung.endpoint.swagger;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+@Configuration
+public class SpringFoxConfig {
+
+ @Bean
+ public Docket api() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .select()
+ .apis(RequestHandlerSelectors.any())
+ .paths(PathSelectors.any())
+ .build();
+ }
+}
diff --git a/spring-boot-rest-2/src/main/resources/application.properties b/spring-boot-rest-2/src/main/resources/application.properties
new file mode 100644
index 0000000000..5046c9660f
--- /dev/null
+++ b/spring-boot-rest-2/src/main/resources/application.properties
@@ -0,0 +1,2 @@
+
+management.endpoints.web.exposure.include=mappings