diff --git a/spring-session/README.md b/spring-session/README.md
index 0d802a4715..733c9edfb9 100644
--- a/spring-session/README.md
+++ b/spring-session/README.md
@@ -4,3 +4,4 @@
### Relevant Articles:
- [Introduction to Spring Session](http://www.baeldung.com/spring-session)
+- [Spring Session with JDBC](http://www.baeldung.com)
diff --git a/spring-session/pom.xml b/spring-session/pom.xml
index d65dc3de88..28dde40272 100644
--- a/spring-session/pom.xml
+++ b/spring-session/pom.xml
@@ -1,10 +1,12 @@
-
4.0.0
+ org.baeldung
spring-session
1.0.0-SNAPSHOT
- jar
+
+ spring-session
+ pom
parent-boot-1
@@ -13,32 +15,9 @@
../parent-boot-1
-
-
- org.springframework.boot
- spring-boot-starter-data-redis
-
-
- org.springframework.boot
- spring-boot-starter-security
-
-
- org.springframework.session
- spring-session
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- com.github.kstyrc
- embedded-redis
- ${embedded-redis.version}
-
-
-
-
- 0.6
-
+
+ spring-session-jdbc
+ spring-session-redis
+
\ No newline at end of file
diff --git a/spring-session/spring-session-jdbc/README.MD b/spring-session/spring-session-jdbc/README.MD
new file mode 100644
index 0000000000..e22b7317c9
--- /dev/null
+++ b/spring-session/spring-session-jdbc/README.MD
@@ -0,0 +1,6 @@
+This module is for Spring Session with JDBC tutorial.
+Jira BAEL-1911
+
+### Relevant Articles:
+
+- [Spring Session with JDBC](http://www.baeldung.com)
diff --git a/spring-session/spring-session-jdbc/pom.xml b/spring-session/spring-session-jdbc/pom.xml
new file mode 100644
index 0000000000..ce119b3c74
--- /dev/null
+++ b/spring-session/spring-session-jdbc/pom.xml
@@ -0,0 +1,67 @@
+
+
+ 4.0.0
+ com.baeldung
+ spring-session-jdbc
+ 0.0.1-SNAPSHOT
+ jar
+ spring-session-jdbc
+ Spring Session with JDBC tutorial
+
+
+ parent-boot-2
+ com.baeldung
+ 0.0.1-SNAPSHOT
+ ../../parent-boot-2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.session
+ spring-session-core
+
+
+ com.h2database
+ h2
+ runtime
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.session
+ spring-session-jdbc
+
+
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-session/spring-session-jdbc/src/main/java/com/baeldung/springsessionjdbc/SpringSessionJdbcApplication.java b/spring-session/spring-session-jdbc/src/main/java/com/baeldung/springsessionjdbc/SpringSessionJdbcApplication.java
new file mode 100644
index 0000000000..727fa653ff
--- /dev/null
+++ b/spring-session/spring-session-jdbc/src/main/java/com/baeldung/springsessionjdbc/SpringSessionJdbcApplication.java
@@ -0,0 +1,12 @@
+package com.baeldung.springsessionjdbc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringSessionJdbcApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SpringSessionJdbcApplication.class, args);
+ }
+}
diff --git a/spring-session/spring-session-jdbc/src/main/java/com/baeldung/springsessionjdbc/controller/SpringSessionJdbcController.java b/spring-session/spring-session-jdbc/src/main/java/com/baeldung/springsessionjdbc/controller/SpringSessionJdbcController.java
new file mode 100644
index 0000000000..0a68bbbfba
--- /dev/null
+++ b/spring-session/spring-session-jdbc/src/main/java/com/baeldung/springsessionjdbc/controller/SpringSessionJdbcController.java
@@ -0,0 +1,46 @@
+package com.baeldung.springsessionjdbc.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.ArrayList;
+import java.util.List;
+
+@Controller
+public class SpringSessionJdbcController {
+
+ @GetMapping("/")
+ public String index(Model model, HttpSession session) {
+ List favoriteColors = getFavColors(session);
+ model.addAttribute("favoriteColors", favoriteColors);
+ model.addAttribute("sessionId", session.getId());
+ return "index";
+ }
+
+ @PostMapping("/saveColor")
+ public String saveMessage(@RequestParam("color") String color,
+ HttpServletRequest request) {
+ List favoriteColors = getFavColors(request.getSession());
+ if (!StringUtils.isEmpty(color)) {
+ favoriteColors.add(color);
+ request.getSession().
+ setAttribute("favoriteColors", favoriteColors);
+ }
+ return "redirect:/";
+ }
+
+ private List getFavColors(HttpSession session) {
+ List favoriteColors = (List) session.
+ getAttribute("favoriteColors");
+ if (favoriteColors == null) {
+ favoriteColors = new ArrayList<>();
+ }
+ return favoriteColors;
+ }
+}
diff --git a/spring-session/spring-session-jdbc/src/main/resources/application.properties b/spring-session/spring-session-jdbc/src/main/resources/application.properties
new file mode 100644
index 0000000000..95f14559ce
--- /dev/null
+++ b/spring-session/spring-session-jdbc/src/main/resources/application.properties
@@ -0,0 +1,9 @@
+spring.session.store-type=jdbc
+#spring.session.jdbc.initialize-schema=embedded
+#spring.session.jdbc.table-name=SPRING_SESSION
+#server.servlet.session.timeout=60s
+#spring.datasource.url=jdbc:h2:mem:AZ
+#spring.security.user.name=admin
+#spring.security.user.password=secret
+spring.h2.console.enabled=true
+spring.h2.console.path=/h2-console
\ No newline at end of file
diff --git a/spring-session/spring-session-jdbc/src/main/resources/templates/index.html b/spring-session/spring-session-jdbc/src/main/resources/templates/index.html
new file mode 100644
index 0000000000..51f6bbee2f
--- /dev/null
+++ b/spring-session/spring-session-jdbc/src/main/resources/templates/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+ Spring Session JDBC
+
+
+
+
+
+ Session ID -
+ My favorite color(s) -
+
+
\ No newline at end of file
diff --git a/spring-session/spring-session-jdbc/src/test/java/com/baeldung/springsessionjdbc/SpringSessionJdbcApplicationTests.java b/spring-session/spring-session-jdbc/src/test/java/com/baeldung/springsessionjdbc/SpringSessionJdbcApplicationTests.java
new file mode 100644
index 0000000000..9975e51784
--- /dev/null
+++ b/spring-session/spring-session-jdbc/src/test/java/com/baeldung/springsessionjdbc/SpringSessionJdbcApplicationTests.java
@@ -0,0 +1,16 @@
+package com.baeldung.springsessionjdbc;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class SpringSessionJdbcApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/spring-session/spring-session-redis/README.md b/spring-session/spring-session-redis/README.md
new file mode 100644
index 0000000000..0d802a4715
--- /dev/null
+++ b/spring-session/spring-session-redis/README.md
@@ -0,0 +1,6 @@
+=========
+
+## Spring Session Examples
+
+### Relevant Articles:
+- [Introduction to Spring Session](http://www.baeldung.com/spring-session)
diff --git a/spring-session/spring-session-redis/pom.xml b/spring-session/spring-session-redis/pom.xml
new file mode 100644
index 0000000000..00da656226
--- /dev/null
+++ b/spring-session/spring-session-redis/pom.xml
@@ -0,0 +1,44 @@
+
+
+ 4.0.0
+ spring-session-redis
+ 1.0.0-SNAPSHOT
+ jar
+
+
+ parent-boot-1
+ com.baeldung
+ 0.0.1-SNAPSHOT
+ ../../parent-boot-1
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+ org.springframework.session
+ spring-session
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.github.kstyrc
+ embedded-redis
+ ${embedded-redis.version}
+
+
+
+
+ 0.6
+
+
+
\ No newline at end of file
diff --git a/spring-session/src/main/java/com/baeldung/spring/session/SecurityConfig.java b/spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SecurityConfig.java
similarity index 100%
rename from spring-session/src/main/java/com/baeldung/spring/session/SecurityConfig.java
rename to spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SecurityConfig.java
diff --git a/spring-session/src/main/java/com/baeldung/spring/session/SessionConfig.java b/spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SessionConfig.java
similarity index 100%
rename from spring-session/src/main/java/com/baeldung/spring/session/SessionConfig.java
rename to spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SessionConfig.java
diff --git a/spring-session/src/main/java/com/baeldung/spring/session/SessionController.java b/spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SessionController.java
similarity index 100%
rename from spring-session/src/main/java/com/baeldung/spring/session/SessionController.java
rename to spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SessionController.java
diff --git a/spring-session/src/main/java/com/baeldung/spring/session/SessionWebApplication.java b/spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SessionWebApplication.java
similarity index 100%
rename from spring-session/src/main/java/com/baeldung/spring/session/SessionWebApplication.java
rename to spring-session/spring-session-redis/src/main/java/com/baeldung/spring/session/SessionWebApplication.java
diff --git a/spring-session/src/main/resources/application.properties b/spring-session/spring-session-redis/src/main/resources/application.properties
similarity index 100%
rename from spring-session/src/main/resources/application.properties
rename to spring-session/spring-session-redis/src/main/resources/application.properties
diff --git a/spring-session/src/test/java/com/baeldung/spring/session/SessionControllerIntegrationTest.java b/spring-session/spring-session-redis/src/test/java/com/baeldung/spring/session/SessionControllerIntegrationTest.java
similarity index 100%
rename from spring-session/src/test/java/com/baeldung/spring/session/SessionControllerIntegrationTest.java
rename to spring-session/spring-session-redis/src/test/java/com/baeldung/spring/session/SessionControllerIntegrationTest.java