diff --git a/spring-all/pom.xml b/spring-all/pom.xml
index c4c4cf7963..9df14873a2 100644
--- a/spring-all/pom.xml
+++ b/spring-all/pom.xml
@@ -45,6 +45,15 @@
spring-shell
${org.springframework.shell.version}
+
+ org.springframework
+ spring-websocket
+
+
+ org.springframework
+ spring-messaging
+
+
org.springframework
diff --git a/spring-all/src/main/java/org/baeldung/scopes/ScopesController.java b/spring-all/src/main/java/org/baeldung/scopes/ScopesController.java
index 73df386aff..9257a3aa3a 100644
--- a/spring-all/src/main/java/org/baeldung/scopes/ScopesController.java
+++ b/spring-all/src/main/java/org/baeldung/scopes/ScopesController.java
@@ -13,21 +13,36 @@ import org.springframework.web.bind.annotation.RequestMapping;
public class ScopesController {
public static final Logger LOG = LoggerFactory.getLogger(ScopesController.class);
- @Resource(name = "requestMessage")
- HelloMessageGenerator requestMessage;
+ @Resource(name = "requestScopedBean")
+ HelloMessageGenerator requestScopedBean;
- @Resource(name = "sessionMessage")
- HelloMessageGenerator sessionMessage;
+ @Resource(name = "sessionScopedBean")
+ HelloMessageGenerator sessionScopedBean;
- @RequestMapping("/scopes")
- public String getScopes(final Model model) {
- LOG.info("Request Message:" + requestMessage.getMessage());
- LOG.info("Session Message" + sessionMessage.getMessage());
- requestMessage.setMessage("Good morning!");
- sessionMessage.setMessage("Good afternoon!");
- model.addAttribute("requestMessage", requestMessage.getMessage());
- model.addAttribute("sessionMessage", sessionMessage.getMessage());
+ @Resource(name = "applicationScopedBean")
+ HelloMessageGenerator applicationScopedBean;
+
+ @RequestMapping("/scopes/request")
+ public String getRequestScopeMessage(final Model model) {
+ model.addAttribute("previousMessage", requestScopedBean.getMessage());
+ requestScopedBean.setMessage("Request Scope Message!");
+ model.addAttribute("currentMessage", requestScopedBean.getMessage());
return "scopesExample";
}
+ @RequestMapping("/scopes/session")
+ public String getSessionScopeMessage(final Model model) {
+ model.addAttribute("previousMessage", sessionScopedBean.getMessage());
+ sessionScopedBean.setMessage("Session Scope Message!");
+ model.addAttribute("currentMessage", sessionScopedBean.getMessage());
+ return "scopesExample";
+ }
+
+ @RequestMapping("/scopes/application")
+ public String getApplicationScopeMessage(final Model model) {
+ model.addAttribute("previousMessage", applicationScopedBean.getMessage());
+ applicationScopedBean.setMessage("Application Scope Message!");
+ model.addAttribute("currentMessage", applicationScopedBean.getMessage());
+ return "scopesExample";
+ }
}
diff --git a/spring-all/src/main/java/org/baeldung/spring/config/ScopesConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/ScopesConfig.java
index fb34725508..b5fe494ee2 100644
--- a/spring-all/src/main/java/org/baeldung/spring/config/ScopesConfig.java
+++ b/spring-all/src/main/java/org/baeldung/spring/config/ScopesConfig.java
@@ -27,19 +27,25 @@ public class ScopesConfig {
@Bean
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
- public HelloMessageGenerator requestMessage() {
+ public HelloMessageGenerator requestScopedBean() {
return new HelloMessageGenerator();
}
@Bean
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
- public HelloMessageGenerator sessionMessage() {
+ public HelloMessageGenerator sessionScopedBean() {
return new HelloMessageGenerator();
}
@Bean
@Scope(value = WebApplicationContext.SCOPE_APPLICATION, proxyMode = ScopedProxyMode.TARGET_CLASS)
- public HelloMessageGenerator globalSessionMessage() {
+ public HelloMessageGenerator applicationScopedBean() {
+ return new HelloMessageGenerator();
+ }
+
+ @Bean
+ @Scope(scopeName = "websocket", proxyMode = ScopedProxyMode.TARGET_CLASS)
+ public HelloMessageGenerator websocketScopedBean() {
return new HelloMessageGenerator();
}
diff --git a/spring-all/src/main/webapp/WEB-INF/view/scopesExample.jsp b/spring-all/src/main/webapp/WEB-INF/view/scopesExample.jsp
index 7974cf0220..0946f1b5ef 100644
--- a/spring-all/src/main/webapp/WEB-INF/view/scopesExample.jsp
+++ b/spring-all/src/main/webapp/WEB-INF/view/scopesExample.jsp
@@ -2,9 +2,9 @@
- Bean Scopes Examples
-
- Request Message: ${requestMessage }
- Session Message: ${sessionMessage }
+ Bean Scopes Examples
+
Previous Message: ${previousMessage }
+
Current Message: ${currentMessage }
+