Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用会话作用域Bean_Java_Spring Mvc - Fatal编程技术网

Java 使用会话作用域Bean

Java 使用会话作用域Bean,java,spring-mvc,Java,Spring Mvc,以下代码返回null: AController.java private MyAppUser getMyAppUser(HttpSession session) { MyAppUser myAppUser = (MyAppUser) session.getAttribute("myAppUserManager"); return myAppUser; } 我也试过: AController.java @Autowired MyAppUser

以下代码返回null:

AController.java

    private MyAppUser getMyAppUser(HttpSession session) {
        MyAppUser myAppUser = (MyAppUser) session.getAttribute("myAppUserManager");
        return myAppUser;
    }
我也试过:

AController.java

@Autowired
MyAppUser myAppUser;
尽管在我的背景下,我有以下几点:

<bean id="myAppUserManager" class="com.myapp.profile.MyAppUser" scope="session"/>


这对我来说没有任何意义,“myAppUser”bean是一个绝对不能为null的bean,我需要能够从控制器引用它,我不需要它在服务或存储库中,只需要控制器,但它似乎没有存储在会话中,用例非常简单,但是我还没有找到问题的根源,也没有找到一个好的解决方法

会话范围的bean在这样的会话中是不可用的。Spring管理它们,并将它们存储在会话中,但不是以您可以手动将它们取出的方式


如果要使用作用域bean,可以将其连接到其他bean中,就像其他bean一样。不过,有一些事情需要注意——请看。本质上,如果您想将会话范围的bean A连接到bean B中,那么bean B也必须是会话范围的(或请求范围的),除非您使用范围代理-请参阅上一个链接以了解如何做到这一点。

我链接的代码位于带注释的控制器中,因此,我无法像您引用的文档那样在配置中链接属性。事实上,我已经看过那个文档了。我在每个控制器中也需要这个对象,所以我不打算将它全部转换为基于XML的。我还尝试了自动连接“myAppUser”,但由于部署时出现异常而失败,控制器是否没有会话或请求作用域?我觉得这很难相信。@jboyd:Controllers在默认情况下是单例作用域的,就像其他bean一样。此外,您不需要将控制器放入XML中—只需要在XML中定义作用域bean,并在其中定义