Java 使用JSF2.0JSF-2.0处理支持Bean初始化的最佳实践

Java 使用JSF2.0JSF-2.0处理支持Bean初始化的最佳实践,java,jsf,jsf-2,Java,Jsf,Jsf 2,我的支持bean中有一个@PostConstruct init()函数,用于执行冗长的数据库查询 支持bean是@SessionScoped 每次执行Ajax查询时,我都会点击init()并再次触发数据库查询 在启动数据库查询之前,是否需要检查init()中的生命周期阶段?或者我应该将细节存储在更持久的对象中,比如当前用户 致以最良好的祝愿, Alan会话)感谢您的帮助——你们是最好的。字面上仔细检查了会议情况,很好。专用开发服务器,我是唯一的用户。检查会话ID-会话ID(“e6de4c1d14

我的支持bean中有一个@PostConstruct init()函数,用于执行冗长的数据库查询

支持bean是@SessionScoped

每次执行Ajax查询时,我都会点击init()并再次触发数据库查询

在启动数据库查询之前,是否需要检查init()中的生命周期阶段?或者我应该将细节存储在更持久的对象中,比如当前用户

致以最良好的祝愿,
Alan

对于
@SessionScoped
bean,每个用户会话只执行一次,因此它是初始化bean的正确位置。确保bean确实在会话范围内,并且它的多个执行实际上不是来自不同的用户(=>会话)

感谢您的帮助——你们是最好的。字面上仔细检查了会议情况,很好。专用开发服务器,我是唯一的用户。检查会话ID-会话ID(“e6de4c1d14184029f952925cce79”)在从Ajax请求第一次调用init()和第二次调用init()之间没有变化。但是,“this”(指支持bean实例)的值确实发生了变化。出人意料的事情正在发生。想法?嗯,给我们更多的细节。例如,faces配置。无论您是否正在使用CDI.Isolated和removed元素,这些元素都是在页面上创建对新支持bean实例的引用。仍然不确定ajax请求为什么引用了一个新的backingbean实例。这是一个变通办法,我更愿意理解,但前进的压力很大。Thx.com可能是JSF实现中的一个bug。尝试升级(如果有更新的版本)