gpt4 book ai didi

java - Spring session + Redis + JSF

转载 作者:可可西里 更新时间:2023-11-01 11:50:05 26 4
gpt4 key购买 nike

我目前正在开展一个项目,我需要将 HTTP session 和其他对象(例如 JSF 状态、 Controller 等)外部化。我的项目是在 Web 层上使用 JSF 的完整 JEE(加上 PrimeFaces 和其他一些库)。在 AWS 上使用 Docker 在 Payara Server 上运行。

我的 Controller 是完全有状态的,我需要保持这种状态。我研究了如何在不更改太多代码的情况下轻松地将用户 session 外部化,并且我发现了 Spring Session。问题是我对 Spring 以及如何将它引入我的项目的经验为零,到目前为止我所有的尝试都失败了。

我不使用 Maven,目前我不太可能使用它,因为项目太大无法移动,所以我必须手动导入所有库。我只想导入库(Spring + Spring Session),配置 Redis 访问并尽可能少地更改代码。有那么容易吗?

我的问题是:在我的情况下使用 Spring Session 的最佳方法是什么?有谁知道将 JSF session 外部化到 Redis 的更好/更简单的方法?

谢谢。

最佳答案

我会做什么:我不会尝试重新发明轮子,很可能在您的预算中没有足够的业余时间和金钱来找出这样的解决方案。

为什么?

你有一个基于 ant 的大项目,spring 是基于 maven 的,它有一个如此巨大的依赖树,如果没有 maven 你将无法真正管理它(我什至不想尝试在没有 maven 的情况下构建一个 hello world在 spring-boot/mvc 中)。即使你能以某种方式将它们放在一起,我敢打赌,jar 版本差异也会导致很多类路径问题。您必须注意您使用的 Java 版本,您必须选择 spring 版本,以便 Spring 支持您的 JDK。

并且存在技术差异:您可能可以使用 CDI 从 EJB 调用 Spring bean,反之亦然(至少这在 Wildfly 上以这种方式起作用),但如果您仔细考虑一下,您不会喜欢那样做。如果您曾经使用过 Spring,您就会知道这并不容易。

最后但同样重要的是:您想使用 Spring 替换/实现 Payara session 复制...为了做到这一点,您必须非常了解 Payara 内部结构、Spring 内部结构和许多其他东西这样做。

总而言之,如果我是你,我会实现标准 session 复制,或者更好的无状态后端。你可以有更多的集群,这样你就不会在所有节点之间复制你的 session 。

你真的应该考虑转向 maven 或 gradle,从长远来看,它几乎只有好处。 Netbeans supports好吧。唯一的缺点是如果你有很多自定义的 ant 任务,但是有 maven-antrun-plugin,而且,如果没有什么可以帮助你,那么编写你自己的 maven 插件并不难。

关于java - Spring session + Redis + JSF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52211696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com