gpt4 book ai didi

java - JSF 2 Spring XRebel 大型 session

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:26 28 4
gpt4 key购买 nike

我最近安装了 XRebel 插件,它允许您查看当前 session 大小。

我发现, session 在第一页加载时立即达到 10 MB(身份验证 session bean 的初始化)。

我的设置:

我正在使用 JSF 2.2、Spring 4 和 Hibernate 4。

DAO 层 > 服务层 > 托管 Bean

DAO层

@Named
@Singleton
@Repository
public class UserDao extends BaseDao<User>
{
...
}

服务层

@Service
@Named
@Singleton
public class UserService extends BaseService<User>
{


@Autowired
private UserDao dao;

...

}

我的身份验证 session bean,在首页加载时加载

@Named
@Component
@Scope("session")
public class Auth implements Serializable
{

@Autowired
private UserService userService;

...
}

在我的 applicationContext.xml 中我使用

<context:component-scan base-package="com.mypackage" />

这是我在 session bean 中 Autowiring 服务 bean 时遇到的一个普遍问题。

Userservice仅包含检索、保存和删除用户对象的方法,没有包含用户或其他任何内容的ArrayList。

我的 auth bean 中有两个 @Autowired 服务 - UserService 和 SessionService。

如果我注释掉 UserService,SessionService 将达到相同的大小。如果我注释掉两者,就会有一个来自“org.springframework.web.context.request.ServletRequestAttribute...”的“DestructionCallbackBindingListener”,它立即达到 8mb。

我做错了什么?如何减小 session 大小?

我很乐意接受任何帮助。

这是 XRebel 的图像,显​​示 userService 在 session 中占用大约 8mb 大小。 /image/TBXx3.png

查看XRebel,似乎beanFactory保存在用户 session 中。

最佳答案

我在官方论坛上发布了有关 XRebel 的内容。这是我收到的答复。

Indeed, the beanFactory is reachable from the session, through the CGLIB proxy. We may need to improve to how we recognize objects that are shared or should not be considered part of the session.

We try to show how much memory each session takes, but Spring beanFactories are of course shared between sessions usually.

Often the fact that we filter out transient fields from the session is enough, but we’ll take a look at the CGLIB/Spring proxies to see how we can filter them out by a general rule or maybe we can just add specific Spring classes to an ignore list.

简而言之:在查看 session 大小时可以忽略 beanfactory,如果可能的话,可以选择将自动连线服务标记为 transient 。

Indeed you can ignore it mentally for now or if it’s possible then yes, making the variables transient would exclude them.

关于java - JSF 2 Spring XRebel 大型 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25472444/

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