質問編集履歴

6

コードの書き方を修正

2018/11/06 14:09

投稿

tt2
tt2

スコア14

test CHANGED
File without changes
test CHANGED
@@ -146,7 +146,7 @@
146
146
 
147
147
  @Autowired
148
148
 
149
- public UserBean userBean;
149
+ private UserBean userBean;
150
150
 
151
151
 
152
152
 

5

コードの書き方を修正

2018/11/06 14:09

投稿

tt2
tt2

スコア14

test CHANGED
File without changes
test CHANGED
@@ -134,6 +134,12 @@
134
134
 
135
135
  ```Java
136
136
 
137
+ import org.springframework.beans.factory.annotation.Autowired;
138
+
139
+ import org.springframework.stereotype.Service;
140
+
141
+
142
+
137
143
  @Service
138
144
 
139
145
  public class TestService {

4

コードの書き方を修正

2018/11/06 14:08

投稿

tt2
tt2

スコア14

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,22 @@
3
3
  例えば、userBeanという名称でセッションに保存した情報をServiceクラスのフィールドに自動セットを行う方法を探しています。
4
4
 
5
5
  以下のコードで試しましたが、TestServiceクラスのuserBeanがnullになっており、参照できませんでした。
6
+
7
+
8
+
9
+ ```xml
10
+
11
+ <dependency>
12
+
13
+ <groupId>cglib</groupId>
14
+
15
+ <artifactId>cglib</artifactId>
16
+
17
+ <version>3.2.9</version>
18
+
19
+ </dependency>
20
+
21
+ ```
6
22
 
7
23
 
8
24
 

3

コードの書き方を修正

2018/11/06 13:59

投稿

tt2
tt2

スコア14

test CHANGED
File without changes
test CHANGED
@@ -2,41 +2,153 @@
2
2
 
3
3
  例えば、userBeanという名称でセッションに保存した情報をServiceクラスのフィールドに自動セットを行う方法を探しています。
4
4
 
5
- 以下のように試してみたしたが、userBeanがnullになっており、参照できません。
5
+ 以下のコードで試ししたが、TestServiceクラスのuserBeanがnullになっており、参照できませんでした
6
6
 
7
7
 
8
8
 
9
- ```セッションにuserBeanを保存する処理
9
+ ```Java
10
10
 
11
- UserBean userBean = new UserBean();
11
+ import org.springframework.context.annotation.ScopedProxyMode;
12
12
 
13
- userBean.name = "テストユーザ";
13
+ import org.springframework.stereotype.Component;
14
14
 
15
- userBean.age = 50;
15
+ import org.springframework.web.context.annotation.SessionScope;
16
16
 
17
17
 
18
18
 
19
- HttpSession session = request.getSession(true);
19
+ @Component
20
20
 
21
- session.setAttribute("userBean", userBean);
21
+ @SessionScope(proxyMode = ScopedProxyMode.TARGET_CLASS)
22
+
23
+ public class UserBean {
24
+
25
+ private String name;
26
+
27
+ private int age;
28
+
29
+
30
+
31
+ public String getName() {
32
+
33
+ return name;
34
+
35
+ }
36
+
37
+ public void setName(String name) {
38
+
39
+ this.name = name;
40
+
41
+ }
42
+
43
+ public int getAge() {
44
+
45
+ return age;
46
+
47
+ }
48
+
49
+ public void setAge(int age) {
50
+
51
+ this.age = age;
52
+
53
+ }
54
+
55
+ }
22
56
 
23
57
  ```
24
58
 
25
59
 
26
60
 
27
- ```TestService .java
61
+ ```Java
28
62
 
63
+ import javax.servlet.http.HttpServletRequest;
64
+
65
+ import javax.servlet.http.HttpSession;
66
+
67
+
68
+
69
+ import org.springframework.beans.factory.annotation.Autowired;
70
+
71
+ import org.springframework.stereotype.Controller;
72
+
73
+ import org.springframework.web.bind.annotation.RequestMapping;
74
+
75
+
76
+
29
- @Component
77
+ @Controller
78
+
79
+ public class WelcomeController {
80
+
81
+ @Autowired
82
+
83
+ HttpServletRequest request;
84
+
85
+
86
+
87
+ @RequestMapping("/")
88
+
89
+ public String home() {
90
+
91
+ UserBean userBean = new UserBean();
92
+
93
+ userBean.setName("テストユーザ");
94
+
95
+ userBean.setAge(50);
96
+
97
+
98
+
99
+ HttpSession session = request.getSession(true);
100
+
101
+ session.setAttribute("userBean", userBean);
102
+
103
+
104
+
105
+ new TestService().method();
106
+
107
+
108
+
109
+ return "menu";
110
+
111
+ }
112
+
113
+ }
114
+
115
+ ```
116
+
117
+
118
+
119
+ ```Java
120
+
121
+ @Service
30
122
 
31
123
  public class TestService {
32
124
 
33
125
  @Autowired
34
126
 
35
- UserBean userBean;
127
+ public UserBean userBean;
36
128
 
37
- //・・・
129
+
38
130
 
131
+ public void method() {
132
+
133
+ System.out.println("TestService : " + userBean.getName());
134
+
135
+ }
136
+
137
+
138
+
39
- TesService内から、userBeanのnameageの値を参照する処理を記述
139
+ public void setUserBean(UserBean userBean) {
140
+
141
+ this.userBean = userBean;
142
+
143
+ }
144
+
145
+
146
+
147
+ public UserBean getUserBean() {
148
+
149
+ return this.userBean;
150
+
151
+ }
40
152
 
41
153
  }
42
154
 

2

2018/11/06 13:35

投稿

tt2
tt2

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
1
  spring mvcでセッション情報をフィールドインジェクションで自動的にセットする方法を教えて頂けないでしょうか。
2
2
 
3
- 例えば、userBeanという名称でセッションに保存した情報をServiceクラスに自動セットを行う方法を探しています。
3
+ 例えば、userBeanという名称でセッションに保存した情報をServiceクラスのフィールドに自動セットを行う方法を探しています。
4
4
 
5
-
5
+ 以下のように試してみたしたが、userBeanがnullになっており、参照できません。
6
6
 
7
7
 
8
8
 

1

2018/11/05 23:44

投稿

tt2
tt2

スコア14

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  //・・・
38
38
 
39
- TesController内から、userBeanのnameやageの値を参照する処理を記述
39
+ TesService内から、userBeanのnameやageの値を参照する処理を記述
40
40
 
41
41
  }
42
42