質問編集履歴
6
コードの書き方を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -72,7 +72,7 @@
|
|
72
72
|
@Service
|
73
73
|
public class TestService {
|
74
74
|
@Autowired
|
75
|
-
|
75
|
+
private UserBean userBean;
|
76
76
|
|
77
77
|
public void method() {
|
78
78
|
System.out.println("TestService : " + userBean.getName());
|
5
コードの書き方を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -66,6 +66,9 @@
|
|
66
66
|
```
|
67
67
|
|
68
68
|
```Java
|
69
|
+
import org.springframework.beans.factory.annotation.Autowired;
|
70
|
+
import org.springframework.stereotype.Service;
|
71
|
+
|
69
72
|
@Service
|
70
73
|
public class TestService {
|
71
74
|
@Autowired
|
4
コードの書き方を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
例えば、userBeanという名称でセッションに保存した情報をServiceクラスのフィールドに自動セットを行う方法を探しています。
|
3
3
|
以下のコードで試しましたが、TestServiceクラスのuserBeanがnullになっており、参照できませんでした。
|
4
4
|
|
5
|
+
```xml
|
6
|
+
<dependency>
|
7
|
+
<groupId>cglib</groupId>
|
8
|
+
<artifactId>cglib</artifactId>
|
9
|
+
<version>3.2.9</version>
|
10
|
+
</dependency>
|
11
|
+
```
|
12
|
+
|
5
13
|
```Java
|
6
14
|
import org.springframework.context.annotation.ScopedProxyMode;
|
7
15
|
import org.springframework.stereotype.Component;
|
3
コードの書き方を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,22 +1,78 @@
|
|
1
1
|
spring mvcでセッション情報をフィールドインジェクションで自動的にセットする方法を教えて頂けないでしょうか。
|
2
2
|
例えば、userBeanという名称でセッションに保存した情報をServiceクラスのフィールドに自動セットを行う方法を探しています。
|
3
|
-
以下の
|
3
|
+
以下のコードで試しましたが、TestServiceクラスのuserBeanがnullになっており、参照できませんでした。
|
4
4
|
|
5
|
-
```
|
5
|
+
```Java
|
6
|
+
import org.springframework.context.annotation.ScopedProxyMode;
|
6
|
-
|
7
|
+
import org.springframework.stereotype.Component;
|
7
|
-
|
8
|
+
import org.springframework.web.context.annotation.SessionScope;
|
8
|
-
userBean.age = 50;
|
9
9
|
|
10
|
-
|
10
|
+
@Component
|
11
|
-
|
11
|
+
@SessionScope(proxyMode = ScopedProxyMode.TARGET_CLASS)
|
12
|
+
public class UserBean {
|
13
|
+
private String name;
|
14
|
+
private int age;
|
15
|
+
|
16
|
+
public String getName() {
|
17
|
+
return name;
|
18
|
+
}
|
19
|
+
public void setName(String name) {
|
20
|
+
this.name = name;
|
21
|
+
}
|
22
|
+
public int getAge() {
|
23
|
+
return age;
|
24
|
+
}
|
25
|
+
public void setAge(int age) {
|
26
|
+
this.age = age;
|
27
|
+
}
|
28
|
+
}
|
12
29
|
```
|
13
30
|
|
31
|
+
```Java
|
32
|
+
import javax.servlet.http.HttpServletRequest;
|
33
|
+
import javax.servlet.http.HttpSession;
|
34
|
+
|
35
|
+
import org.springframework.beans.factory.annotation.Autowired;
|
36
|
+
import org.springframework.stereotype.Controller;
|
37
|
+
import org.springframework.web.bind.annotation.RequestMapping;
|
38
|
+
|
39
|
+
@Controller
|
40
|
+
public class WelcomeController {
|
41
|
+
@Autowired
|
42
|
+
HttpServletRequest request;
|
43
|
+
|
44
|
+
@RequestMapping("/")
|
45
|
+
public String home() {
|
46
|
+
UserBean userBean = new UserBean();
|
47
|
+
userBean.setName("テストユーザ");
|
48
|
+
userBean.setAge(50);
|
49
|
+
|
50
|
+
HttpSession session = request.getSession(true);
|
51
|
+
session.setAttribute("userBean", userBean);
|
52
|
+
|
14
|
-
|
53
|
+
new TestService().method();
|
54
|
+
|
55
|
+
return "menu";
|
56
|
+
}
|
57
|
+
}
|
58
|
+
```
|
59
|
+
|
60
|
+
```Java
|
15
|
-
@
|
61
|
+
@Service
|
16
62
|
public class TestService {
|
17
63
|
@Autowired
|
18
|
-
|
64
|
+
public UserBean userBean;
|
65
|
+
|
19
|
-
|
66
|
+
public void method() {
|
67
|
+
System.out.println("TestService : " + userBean.getName());
|
68
|
+
}
|
69
|
+
|
20
|
-
|
70
|
+
public void setUserBean(UserBean userBean) {
|
71
|
+
this.userBean = userBean;
|
72
|
+
}
|
73
|
+
|
74
|
+
public UserBean getUserBean() {
|
75
|
+
return this.userBean;
|
76
|
+
}
|
21
77
|
}
|
22
78
|
```
|
2
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
spring mvcでセッション情報をフィールドインジェクションで自動的にセットする方法を教えて頂けないでしょうか。
|
2
|
-
例えば、userBeanという名称でセッションに保存した情報をServiceクラスに自動セットを行う方法を探しています。
|
2
|
+
例えば、userBeanという名称でセッションに保存した情報をServiceクラスのフィールドに自動セットを行う方法を探しています。
|
3
|
+
以下のように試してみたしたが、userBeanがnullになっており、参照できません。
|
3
4
|
|
4
|
-
|
5
5
|
```セッションにuserBeanを保存する処理
|
6
6
|
UserBean userBean = new UserBean();
|
7
7
|
userBean.name = "テストユーザ";
|
1
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,6 +17,6 @@
|
|
17
17
|
@Autowired
|
18
18
|
UserBean userBean;
|
19
19
|
//・・・
|
20
|
-
|
20
|
+
TesService内から、userBeanのnameやageの値を参照する処理を記述
|
21
21
|
}
|
22
22
|
```
|