我的支持bean中有一个@PostConstruct init()函数,它执行冗长的数据库查询。
支持bean是@SessionScoped。
每次执行Ajax查询时,我都会点击init()并再次触发数据库查询。
在触发数据库查询之前,是否需要检查init()中的生命周期阶段?或者我应该将细节存储在更持久的对象中,例如当前用户?
祝你好运, 艾伦
答案 0 :(得分:1)
@PostConstruct
bean的 @SessionScoped
每个用户会话只执行一次,因此它是初始化bean的正确位置。确保bean确实在会话范围内,并且它的多次执行实际上并非来自不同的用户(=> sessions)